使用Jquery和AJAX获取Twitter链接、Facebook点赞和Google+1的计数



我正试图通过jquery.getJSON请求获取twitter、facebook和google的计数,这是从John Dyer关于如何使用C#和PHP 的伟大指南开始的

实际上推特和脸书是可行的,但谷歌不。。。json响应为:

{
  "error": {
  "code": 400,
  "message": "Required value: id",
  "data": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required value: id"
   }
  ]
 },
 "id": "p"
}

这是代码:

<script type="text/javascript">
  function getfbcount(url){
     var fblikes;
     $.getJSON('http://graph.facebook.com/?ids=' + url, function(data){;
        fblikes = data[url].shares;
        $('body').append('fb likes ' + fblikes);
     });
  }
  function gettwcount(url){
     var tweets;
     $.getJSON('http://urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=?', function(data){
        tweets = data.count;
        $('body').append('tweets ' + tweets);
     });
  }
  function getplusone(url){
     var plusones;
     $.getJSON('https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ' + 'callback=?',
        {
           "method":"pos.plusones.get",
           "id":"p",
           "params":{
              "nolog":true,
              "id":url,
              "source":"widget",
              "userId":"@viewer",
              "groupId":"@self"
           },
           "jsonrpc":"2.0",
           "key":"p",
           "apiVersion":"v1"
        },
        function(data){           
        plusones = data.count;
        $('body').append('+1 ' + plusones);
     });
  }
  $(document).ready(function($){
        var url = "http://www.google.com"
        getfbcount(url);
        gettwcount(url);
        getplusone(url);
  });
  </script>

您不能向clients6.google.com服务器发出跨域请求。如果去掉以下部分,你可以在浏览器控制台中看到:

+ 'callback=?'

twitter和facebook允许这些请求。。。

您只需要一个'&'吗在"回调"之前?此刻,你似乎把它粘在了钥匙的末端。

到目前为止,从客户端站点获取g+计数是不可能的。你必须从服务器端开始。下面的代码以json对象的形式返回一个页面的GooglePlus计数。

def get_gplus_count
   google_api_url = 'https://plusone.google.com/_/+1/fastbutton?url='
   page_url = 'http://www.linkOfThePageWhoseGPlusCountYouWant.net'
   g_count_div = '#aggregateCount'
   g_plus_count = "-1"
   begin
     content =  Nokogiri::HTML(open( google_api_url + page_url).read)
     g_plus_count = content.css(g_count_div).text
   rescue => e
   end
   render :json => { :g_plus_count => g_plus_count }
 end

首先,您必须创建页面的用户名(请参阅您的页面名称@username。只需单击它…)

那就去吧https://developers.facebook.com/tools/explorer/并获取访问令牌密钥

然后编写类似的脚本

function facebookLikesCount(access_token, pageusername)
{
var url = "https://graph.facebook.com/"+pageusername+"?fields=likes&access_token="+access_token+"";
$.getJSON(url,function(json){
alert(json.likes);
});
}
facebookLikesCount('your accesstoken', 'pageusername');

这对我来说很管用。我从不使用g+和twitter

最新更新