我正试图通过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