25

我在网站上添加了一个 google +1 按钮,但我想得到它的计数器,这样我就可以对其进行一些数学运算。是否可以输入通过创建 +1 按钮的标准方法创建的 iframe,还是需要进行一些调整?

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone></g:plusone>

我试过这个链接:1,但这不是很准确

4

3 回答 3

26

如果您可以访问 curl/file_get_contents/readfile/wget 或某种方式来获取外部 URL,这非常简单。

加载以下 URL:(https://plusone.google.com/_/+1/fastbutton?url=URLENCODED_URI更新后的URL,请参见下面的注释 *

URLENCODED_URI 是您希望知道 +1 数量的网站,例如http://www.google.com (http%3A%2F%2Fwww.google.com)

例如,获取 URI https://plusone.google.com/_/+1/fastbutton?url=http://www.google.com/( UPDATED URI ) 并定位window.__SSR = {'c': 32414.0 ,'si'. 最好为此使用正则表达式,但我会将实现留给您和您选择的编程语言(服务器端或客户端)。

后面的浮点数'c'是该站点拥有的 +1 数。对于 google.com,这是 32,414。不用担心浮点数,您可以安全地将其转换为整数。

* 更新: URL 已更新为旧 URL 开始为 404。请记住,这是意料之中的,因为这是一种非官方的方法。没有官方方法(还)。

于 2011-09-13T21:58:28.540 回答
4

您可以使用回调函数来获取显示计数的 div 的值吗?

function count() {
    var count = $('#aggregateCount').html();
}

    <g:plusone callback="count()"></g:plusone>

我基于气泡注释按钮,我还没有测试过,但是这样的东西应该可以工作。

于 2011-09-13T15:10:20.747 回答
2

一个纯客户端解决方案对我来说可以获取 Google Plus 计数器如下。它不需要 API 密钥。

var url = "http://www.yoursite-to-be-counted.com";
var data = {
    "method":"pos.plusones.get",
    "id": url,
    "params":{
        "nolog":true,
        "id": url,
        "source":"widget",
        "userId":"@viewer",
        "groupId":"@self"
    },
    "jsonrpc":"2.0",
    "key":"p",
    "apiVersion":"v1"
  };
  $.ajax({
    type: "POST",
    url: "https://clients6.google.com/rpc",
    processData: true,
    contentType: 'application/json',
    data: JSON.stringify(data),
    success: function(r){
      setCount($(".google-plus-count"), r.result.metadata.globalCounts.count);
    }
  });

  var setCount = function($item, count) {
    if (count) {
      $item.text(count);
    }
  };

然后我有一些html

<div class="google-plus-count"></div>

这里的学分归于这个答案。

于 2015-11-18T16:00:58.773 回答