2015-03-03 2 views
-1

Я хочу, чтобы проверить с помощью сценария, если Google Play ссылки на приложение является действительным:Google Play ссылка проверка с помощью PHP

https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggame - действительный https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggamessdasd - недопустимый

но каждый сценарий, что я купил или бесплатно дает для меня ответ 404 или 303. Вероятно, есть какая-то переадресация.

Как проверить правильность ссылок. Мне нужно проверить около 1000 ссылок в моей рекламной системе, если приложения существуют в магазине Google Play.

Я напишу себе петли, читаю из базы данных и т. Д., Но, пожалуйста, кому-то знакомому с php, помогите с проверкой. Я потратил около 300 долларов за это, и меня обманули 2 человека, это «проверка». Всегда 404 или 303.

+0

Похоже, вам придется использовать сторонний API для этого. Быстрый google показывает несколько вариантов для рынка Android. – Scopey

ответ

1

Попробуйте это:

<?php 
/** 
* Check google play app 
* 
* @param string $url Url to check 
* 
* @return boolean True if it exists, false otherwise 
* @throws \Exception On Curl error, an exception is thrown 
*/ 
function checkGooglePlayApp($url) 
{ 
    $curlOptions = array(
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_CUSTOMREQUEST => 'GET', 
     CURLOPT_URL => $url 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, $curlOptions); 
    $result = curl_exec($ch); 
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

    if ($curl_error = curl_error($ch)) 
    { 
     throw new \Exception($curl_error, Exception::CURL_ERROR); 
    } 

    curl_close($ch); 

    return $http_code == '200'; 
} 

$url = 'https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggameERRORERROR'; 
$result = checkGooglePlayApp($url); 
var_dump($result); // Should return false 

$url = 'https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggame'; 
$result = checkGooglePlayApp($url); 
var_dump($result); // Should return true 

Он вернется:

bool(false) 
bool(true) 
1

Это можно легко сделать с помощью функции get_headers. Например:

Неправильный URL

$file = 'https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggamessdasd'; 
$file_headers = get_headers($file); 
print_r($file_headers); 

Вернется:

Array 
(
[0] => HTTP/1.0 404 Not Found 
[1] => Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
[2] => Pragma: no-cache 
[3] => Expires: Fri, 01 Jan 1990 00:00:00 GMT 
[4] => Date: Tue, 03 Mar 2015 04:23:31 GMT 
[5] => Content-Type: text/html; charset=utf-8 
[6] => Set-Cookie: NID=67=QFThy03gh34QypYfoLFTz7bJDI-qzXvuzI05DtrF3aVs1L7NJO9byV6kemHRVVkViz-sodx3Z0GuCQTu9a_1JvToen6ZtjfhNy8MH6DDgH6zix2I4Gm9mauBPCxipnlG;Domain=.google.com;Path=/;Expires=Wed, 02-Sep-2015 04:23:31 GMT;HttpOnly 
[7] => P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." 
[8] => X-Content-Type-Options: nosniff 
[9] => X-Frame-Options: SAMEORIGIN 
[10] => X-XSS-Protection: 1; mode=block 
[11] => Server: GSE 
[12] => Alternate-Protocol: 443:quic,p=0.08 
[13] => Accept-Ranges: none 
[14] => Vary: Accept-Encoding 
) 

Если файл не существует, будет возвращать:

Array 
(
[0] => HTTP/1.0 200 OK 
[1] => Content-Type: text/html; charset=utf-8 
[2] => Set-Cookie: PLAY_PREFS=CgJVUxC6uYnvvSkourmJ770p:S:ANO1ljKvPst7-nSw; Path=/; Secure; HttpOnly 
[3] => Set-Cookie: NID=67=iFUl_Ls8EhAJE7STIJD7Wdq6NF-y4i6Xrlb78My75ZaruVWlAKObDRDNGDddGxD0hSsLRpvrQK7Tp5nuKCgGg2jF1GUf9_4H_zYsUDQ548Be2n8EDjp9clDfXKLYjmSg;Domain=.google.com;Path=/;Expires=Wed, 02-Sep-2015 04:26:14 GMT;HttpOnly 
[4] => Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
[5] => Pragma: no-cache 
[6] => Expires: Fri, 01 Jan 1990 00:00:00 GMT 
[7] => Date: Tue, 03 Mar 2015 04:26:14 GMT 
[8] => P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." 
[9] => X-Content-Type-Options: nosniff 
[10] => X-Frame-Options: SAMEORIGIN 
[11] => X-XSS-Protection: 1; mode=block 
[12] => Server: GSE 
[13] => Alternate-Protocol: 443:quic,p=0.08 
[14] => Accept-Ranges: none 
[15] => Vary: Accept-Encoding 
) 

Таким образом, вы можете создать такой скрипт:

<?php 
$files = ['https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggame', 'https://play.google.com/store/apps/details?id=com.ketchapp.zigzaggamesadasd']; 

foreach($files as $file) 
{ 
    $headers = get_headers($file); 

    if($headers[0] == 'HTTP/1.0 404 Not Found') 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 
?> 
Смежные вопросы