【问题标题】:How you should retrieve google plus +1 count for an url?你应该如何检索一个 url 的 google plus +1 计数?
【发布时间】:2014-04-05 15:47:55
【问题描述】:

使用rpc方法:

$url = 'http://www.google.com';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, 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($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$curl_results = curl_exec ($curl);
curl_close ($curl);
$json = json_decode($curl_results, true);
echo intval( $json[0]['result']['metadata']['globalCounts']['count'] );

还是使用 +1 按钮报废方法?

$url = 'http://www.google.com';
$result = file_get_contents('https://plusone.google.com/_/+1/fastbutton?url='.urlencode($url));
preg_match( '/window\.__SSR = {c: ([\d]+)/', $result, $matches );

echo (isset($matches[0])) ? (int) str_replace('window.__SSR = {c:', '', $matches[0]) : 0;

解释差异或可能的副作用会很棒。

注意:这两种方法都适用于 2014/04/05。

【问题讨论】:

    标签: google-api google-plus google-plus-one


    【解决方案1】:

    鉴于 Google 都不是官方/支持的,我可能会使用第一种方法并在失败的情况下回退到第二种方法。第二种方法更容易出错,因为您正在解析可以随时更改的源代码(并不是调用您不应该调用的服务更好,但显然没有其他选择)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2017-04-03
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多