【问题标题】:How do I get the counter of a google plus +1 button?如何获得 google plus +1 按钮的计数器?
【发布时间】:2011-09-13 14:29:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript html google-plus-one


    【解决方案1】:

    如果您可以访问 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。请记住,这是意料之中的,因为这是一种非官方的方法。没有官方方法(还)。

    【讨论】:

    • 显然这是一条路。我会试一试,稍后在这里发布结果。
    • 您能告诉我您是如何解决这个问题的,或者您在哪里找到的答案?
    • 我检查了一些网站上由加号按钮引起的网络流量(感谢 Safari 和 Chrome 中可爱的 WebKit Inspector),发现它们都以某种方式表现,而且它们都调用某个 url,该 url 又返回 html 和 javascript。我发现 javascript 包含 +1 的数量,无论 +1 的数量表示为 32k、“数百”还是 14。
    • 这为我指明了正确的方向,我现在有一个无 cookie 的异步调用,可以让 google plus 计数与我的 facebook、twitter、偶然发现和美味的调用保持一致。
    • 这看起来不错,我正在考虑这样的解决方案,但我有一个问题你认为你能帮忙吗,这个网址stackoverflow.com/questions/12043558/google-plus-count-url
    【解决方案2】:

    能否使用回调函数来获取显示计数的 div 的值?

    function count() {
        var count = $('#aggregateCount').html();
    }
    
        <g:plusone callback="count()"></g:plusone>
    

    我是基于bubble annotation button,我还没有测试过,但这样的东西应该可以工作。

    【讨论】:

    • 据我了解回调属性,只有在用户点击按钮时才会调用。
    • 啊,那onload呢?
    • 我似乎找不到那个事件,@barro32。可用事件都与用户交互相关。
    【解决方案3】:

    适用于我获取 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 回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      相关资源
      最近更新 更多