Aba*_*bie 2 php google-plus-one
我一直在互联网上搜索如何获得programaticaly谷歌加一键计数.最后我发现这篇文章 这里是arcticle中提到的Php脚本.
<?php
$url = "http://www.tomanthony.co.uk/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$curl_results = curl_exec ($ch);
curl_close ($ch);
$parsed_results = json_decode($curl_results, true);
echo $parsed_results[0]['result']['metadata']['globalCounts']['count'];
?>
Run Code Online (Sandbox Code Playgroud)
我尝试了一切,我已经坐了3个小时,但可以让它工作.但它似乎对他非常好.它是完全直接和简单的脚本.
我甚至使用firebug来检查请求.我尝试用找到的一个替换post数据值.
[{"method":"pos.plusones.get","id":"pos.plusones.get","params":{"cdx":"cb4","id":"http://www.tomanthony.co.uk/google_plus_one_api_example.php","source":"widget","container":"http://www.tomanthony.co.uk/google_plus_one_api_example.php","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"pos.plusones.get","apiVersion":"v1"}]
Run Code Online (Sandbox Code Playgroud)
我不知道我哪里错了.它只是一个简单的代码.
小智 6
可能是卷曲不接受服务器CA的问题.您可以通过以下方式找到:
$curl_results = curl_exec ($ch);
echo curl_error($ch);
Run Code Online (Sandbox Code Playgroud)
如果确实存在不受信任的CA的问题,则有两种选择.不安全和简单的方法是添加一个卷曲选项:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Run Code Online (Sandbox Code Playgroud)
这会禁用检查.第二个选项(更好,更复杂)是转到https://clients6.google.com并导出CA证书并将其提供给curl,如下所示:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/exported.crt");
Run Code Online (Sandbox Code Playgroud)