Как я могу получить счетчик кнопки Google плюс +1? - PullRequest
25 голосов
/ 13 сентября 2011

Я добавил кнопку Google +1 на веб-сайт, но я хочу получить ее счетчик, чтобы я мог немного подсчитать.Можно ли ввести iframe, созданный стандартным способом создания кнопки +1, или мне нужно внести некоторые изменения?

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

Я пробовал эту ссылку: 1 , но это не очень точно

Ответы [ 3 ]

26 голосов
/ 14 сентября 2011

Если вы можете получить доступ к 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.Не беспокойтесь о float, вы можете безопасно преобразовать его в целое число.

* ОБНОВЛЕНИЕ: URL-адрес был обновлен, так как старый URL-адрес начинался с 404. Помните, это ожидаетсятак как это неофициальный метод.Не существует официального метода (пока).

4 голосов
/ 13 сентября 2011

Не могли бы вы использовать функцию обратного вызова, чтобы получить значение div, который отображает счетчик?

function count() {
    var count = $('#aggregateCount').html();
}

    <g:plusone callback="count()"></g:plusone>

Я основываюсь на кнопке всплывающей подсказки , я не проверял, но что-то вроде этого должно работать.

2 голосов
/ 18 ноября 2015

Чистое клиентское решение, которое помогает мне получить счетчик 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>

Кредиты здесь идут на этот ответ.

...