Получение Facebook как / поделиться счет для данного URL - PullRequest
56 голосов
/ 16 марта 2012

Я использую API Facebook, чтобы получить количество лайков / акций для заданных URL.Странная вещь в том, что это кажется весьма непоследовательным в возвращении результатов.Например, эта страница возвращает результаты:

https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.groupon.com/deals/seattlehelitourscom-by-classic-helicopter-corp'&format=json

Принимая во внимание, что это не так:

https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.livingsocial.com/deals/278194-sunset-kayaking-hot-chowder'&format=json

Вторая страница явно имеет подсчет доли на ней, и когда я проверяю HTMLна этой странице URL-адрес, который используется для предоставления доступа, является тем, который я поместил в запрос API выше.Тем не менее, API не отвечает ни с какой информацией о подсчете количества лайков или акций.

Какие-либо подсказки о том, почему API может отвечать на некоторые URL-адреса, но не на другие?

Ответы [ 13 ]

47 голосов
/ 27 марта 2012

ОБНОВЛЕНИЕ: Это решение больше не действует. FQL устарели с 7 августа 2016 года.


https://api.facebook.com/method/fql.query?query=select%20%20like_count%20from%20link_stat%20where%20url=%22http://www.techlila.com%22

Также http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.techlila.com покажет вам все данные, такие как «Share Count», «Like Count» и «Comment Count» и общее количество всех этих *. 1013 *

Измените URL (т.е. http://www.techlila.com) в соответствии с вашими потребностями.

Это правильный URL, я получаю правильные результаты.

РЕДАКТИРОВАТЬ (май 2017 г.): начиная с версии 2.9 вы можете сделать вызов API Graph, где ID - это URL, и выбрать поле 'привлечение', ниже приведена ссылка с примером из проводника графика.

https://developers.facebook.com/tools/explorer/?method=GET&path=%3Fid%3Dhttp%3A%2F%2Fcomunidade.edp.pt%26fields%3Dengagement&version=v2.9

42 голосов
/ 08 сентября 2016

По состоянию на 8 августа 2016 г. FQL устарели.


Обновление 10/2017 (версия 2.10):

Вот недревесный способ получения данного URL-адреса, подобного и общего ресурса (токен доступа не требуется):

https://graph.facebook.com/?fields=og_object{likes.summary(total_count).limit(0)},share&id=https://www.stackoverflow.com


Результат:

{
   "og_object": {
      "likes": {
         "data": [

         ],
         "summary": {
            "total_count": 83
         }
      },
      "id": "10151023731873397"
   },
   "share": {
      "comment_count": 0,
      "share_count": 2915
   },
   "id": "https://www.stackoverflow.com"
}

JQuery Пример:

$.get('https://graph.facebook.com/'
    + '?fields=og_object{likes.summary(total_count).limit(0)},share&id='
    + url-goes-here,
    function (data) {
        if (data) {
            var like_count = data.og_object.likes.summary.total_count;
            var share_count = data.share.share_count;
        }
    });

Справка:

https://developers.facebook.com/docs/graph-api/reference/url

17 голосов
/ 22 августа 2013

Используйте API открытого графика. Вот живой пример, запрашивающий, сколько лайков у «Кока-Колы».

https://developers.facebook.com/tools/explorer/?method=GET&path=cocacola%3Ffields%3Dlikes

Что сводится к:

https://graph.facebook.com/cocacola?fields=likes

Что вы могли бы сделать в AJAX GET

Результат:

{
  "likes": 71717854, 
  "id": "40796308305"
}
11 голосов
/ 20 августа 2016

Все предыдущие ответы с тех пор устарели. Этот метод работает по состоянию на август 2016 года:


Чтобы получить одинаковое количество любыхURL:

Запрос GET: https://graph.facebook.com/[url]/access_token=[access_token]

Затем захватывает доли -> share_count из возвращенного объекта JSON.


Количество поклонников дляСтраница Facebook:

Запрос GET: https://graph.facebook.com/[url]/?fields=fan_count&access_token=[access_token]

Затем возьмите поле 'fan_count' из возвращенного объекта JSON.


Вы можете проверить это и получить свой токен доступа с помощью Graph API Explorer

7 голосов
/ 09 августа 2014

Для последней версии 2.1 Graph API, примером для получения лайков для imdb.com будет

Используя это, чтобы получить идентификатор https://developers.facebook.com/tools/explorer/?method=GET&path=%3Fid%3Dhttp%253A%252F%252Fwww.imdb.com%3Ffields%3Dlikes&version=v2.1

, а затем получить лайки

https://developers.facebook.com/tools/explorer/?method=GET&path=414652589771%2Flikes&version=v2.1

Документ

URL /?id={url}

Represents an external URL as it relates to the Facebook social graph - shares and comments from the URL on Facebook, and any Open Graph objects associated with the URL.

Ссылка http://harshtechtalk.com/how-get-likes-count-posts-comments-facebook-graph-api/

7 голосов
/ 04 июня 2014

Facebook График потрясающий.Просто сделайте что-то вроде ниже.Я ввел URL perl.org, вы можете поместить любой URL там.

https://graph.facebook.com/fql?q=SELECT%20like_count,%20total_count,%20share_count,%20click_count,%20comment_count%20FROM%20link_stat%20WHERE%20url%20=%20%27http://perl.org%27

4 голосов
/ 28 января 2016

Вы можете показать Facebook Поделиться / Мне нравится Количество вот так: (Проверено и проверено)

$url = http://www.yourdomainname.com // You can use inner pages

$rest_url = "http://api.facebook.com/restserver.php?format=json&method=links.getStats&urls=".urlencode($url);

$json = json_decode(file_get_contents($rest_url),true);


echo Facebook Shares = '.$json[0][share_count];

echo Facebook Likes = '.$json[0][like_count];

echo Facebook Comments = '.$json[0][comment_count];
3 голосов
/ 17 октября 2014

Для графа API v2.1 вы можете получить счетчик похожих, используя только один вызов, и, следовательно, нет необходимости проходить пейджинг.

Например, чтобы получить количество лайков http://www.imdb.com

https://graph.facebook.com/414652589771/likes?summary=1

Graph API Explorer https://developers.facebook.com/tools/explorer/?method=GET&path=414652589771%2Flikes%3Fsummary%3D1&version=v2.1

Это как-то не документировано (по крайней мере, на данный момент я представляю этот ответ ...). Я нашел ответ в https://stackoverflow.com/a/18198957/1822624

2 голосов
/ 26 октября 2015

используйте ниже URL и замените myurl на ваш пост, и вы получите все вещи

http://api.facebook.com/restserver.php?method=links.getStats&urls=myurl

но имейте в виду, что ответ будет только в формате XML

Пример:

<share_count>1</share_count>
<like_count>8</like_count>
<comment_count>0</comment_count>
<total_count>9</total_count>
<click_count>0</click_count>
<comments_fbid>**************</comments_fbid>
<commentsbox_count>0</commentsbox_count>
1 голос
/ 11 августа 2016

Ваш вопрос довольно старый, и теперь Facebook отказался от FQL, но все, что вы хотите, все еще можно сделать с помощью этой утилиты: Facebook Analytics .Тем не менее, вы обнаружите, что если вы хотите получить подробную информацию о том, кто любит или комментирует, это займет много времени, чтобы получить.Это потому, что Facebook выдает только очень маленький кусок данных за раз, и для получения всего требуется много подкачки.

...