Как получить счетчик кнопки google plus +1?
Я добавил кнопку google +1 на веб-сайт, но я хочу получить ее счетчик, чтобы я мог сделать математику. можно ли ввести iframe, созданный стандартным методом создания кнопки +1, или мне нужно сделать некоторую настройку?
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone></g:plusone>
Я пробовал эту ссылку: 1, но это не очень точно
Ответы
Ответ 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/
(ОБНОВЛЕНО URI) и найдите первое событие window.__SSR = {'c': 32414.0 ,'si'
. Предпочтительно использовать regexp для этого, но я оставлю реализацию вам и выбранному языку программирования (стороне сервера или стороне клиента).
Число с плавающей точкой, следующее за 'c'
, - это число +1, которое имеет сайт. Для google.com это 32 414. Не беспокойтесь о поплавке, вы можете безопасно преобразовать его в целое число.
* UPDATE: URL-адрес обновлен, так как старый URL-адрес начал работать до 404. Помните, что это ожидается, поскольку это неофициальный метод. Официального метода пока нет.
Ответ 2
Можно ли использовать функцию обратного вызова для захвата значения div, которое отображает счет?
function count() {
var count = $('#aggregateCount').html();
}
<g:plusone callback="count()"></g:plusone>
Я основываю это на кнопке аннотации пузыря, я его не тестировал, но что-то вроде этого должно работать.
Ответ 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>
Здесь вы найдете ответы на этот.