如何获得Google + +1按钮的计数器?

时间:2011-09-13 14:29:58

标签: javascript html google-plus-one

我已经在网站上添加了一个谷歌+1按钮,但我想得到它的计数器,所以我可以对它进行一些数学计算。是否可以输入由创建+1按钮的标准方法创建的iframe,还是需要进行一些调整?

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

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

3 个答案:

答案 0 :(得分:26)

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

加载以下网址:https://plusone.google.com/_/+1/fastbutton?url=URLENCODED_URI更新后的网址,请参阅下面的说明*

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/更新的URI )并找到window.__SSR = {'c': 32414.0 ,'si'的第一次出现。最好使用regexp,但我会将实现留给您和您选择的编程语言(服务器端或客户端)。

'c'之后的浮动数是该网站的+1数。对于google.com,这是32,414。不要担心浮动,你可以安全地将其转换为整数。

*更新:当旧网址开始为404时,网址已更新。请记住,这是预期的,因为这是一种非官方的方法。目前尚无官方方法。

答案 1 :(得分:4)

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

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

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

我的基础是bubble annotation button,我没有测试过,但是这样的事情应该有效。

答案 2 :(得分: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>

此处的致谢是this回答。