我想使用google api检查网站是否“适合移动设备使用”以访问其自己的测试服务。
我正在通过PHP使用curl与https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run端点进行通信。引用google api文档here。
我知道我的API密钥有效。如果我通过linux shell中的curl实用程序运行命令,它将起作用(请参阅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;
答案 0 :(得分:0)
因此,在SO的某人outside的帮助下,我得到了一个答案,该答案基本上是设置为略微不同地重写代码。我无法弄清楚症结所在是什么,但是如果格式化如下,它就可以工作...
$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);