Использование API консоли поиска Google для проверки работоспособности сайта с ошибкой 400 ошибок - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу проверить, является ли веб-сайт «дружественным для мобильных устройств», используя google api для доступа к собственной службе тестирования.

Я использую curl через PHP для связи с конечной точкой https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run. Ссылка на Google Api Docs здесь .

Однако возвращаемые данные из моего кода всегда содержат страницу ошибки 400. enter image description here

Что я знаю, так это то, что мой ключ API действителен. Если я запускаю команду через утилиту curl в оболочке linux, она работает (см. Пример, приведенный в документации Google).

Кто-нибудь видел это раньше? Это должно быть связано с моим php-кодом и с тем, как я реализовал в нем curl ...

$ch = curl_init();
$curlConfig = array(
    CURLOPT_URL            => "https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run?key=xxxx",
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => array('Content-Type:application/json'),
    CURLOPT_POSTFIELDS     => json_encode(array(
        'url' => 'https://www.test.com'
    ))
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

1 Ответ

0 голосов
/ 05 ноября 2018

Таким образом, с помощью кого-то за пределами SO я получил ответ на этот вопрос, который был в основном для настройки переписать код немного по-другому. Я не могу понять, что именно является камнем преткновения, но он работает, если отформатирован следующим образом ...

$data="http://www.yourdomain.com/";
$url="https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run?key=xxxxx";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$payload = json_encode( array( "url"=> $data ) );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$api_content = curl_exec ($ch);
curl_close ($ch);

$api_result = json_decode($api_content);

var_dump($api_result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...