我已经在网站上添加了一个谷歌+1按钮,但我想得到它的计数器,所以我可以对它进行一些数学计算。是否可以输入由创建+1按钮的标准方法创建的iframe,还是需要进行一些调整?
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone></g:plusone>
我试过这个链接:1,但这不是很准确
答案 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回答。