Получение 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 ]

1 голос
/ 31 августа 2013

Вам нужно расширенное разрешение «read_stream», затем вам нужно вызвать конечную точку API Facebook и добавить likes,shares к вашему fields.

Этот вызов

https://developers.facebook.com/tools/explorer?method=GET&path=me/feed?fields=likes,shares

вернет массив данных, подобный этому

{
   "data": [
    {
     "likes": {
        "data": [
                 {
                   "name": "name of user who liked status ",
                   "id": "id of user who liked status "
                 }
                ],
        "count": number of likes
     },
     "shares": {
      "count": number of shares 
     }, 
     "id": "post id",
     "created_time": "post creation time"
    }
   ]
}
1 голос
/ 10 апреля 2013

Я вижу этот хороший урок о том, как подсчитать подобное в Facebook с помощью PHP.

public static function get_the_fb_like( $url = '' ){
 $pageURL = 'http://nextopics.com';

 $url = ($url == '' ) ? $pageURL : $url; // setting a value in $url variable

 $params = 'select comment_count, share_count, like_count from link_stat where url = "'.$url.'"';
 $component = urlencode( $params );
 $url = 'http://graph.facebook.com/fql?q='.$component;
 $fbLIkeAndSahre = json_decode( $this->file_get_content_curl( $url ) ); 
 $getFbStatus = $fbLIkeAndSahre->data['0'];
 return $getFbStatus->like_count;
}

вот пример кода. Я не знаю, как вставить сюда код в правильном формате, поэтому просто проследуйте по этой ссылке для лучшего просмотра кода.

Создание пользовательского фейсбука, такого как Counter

0 голосов
/ 23 декабря 2015

Я не думаю, что открытый объект графа Facebook, т. Е. "Og_object" предоставляет что-то большее, чем comment_count & share_count для URL. Попробуй это; замените $ YOUR_URL URL-адресом, а $ ACCESS_TOKEN - токеном доступа по приведенной ниже ссылке. https://graph.facebook.com/v2.5/$YOUR_URL?access_token=$ACCESS_TOKEN

Например:

https://graph.facebook.com/v2.5/http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all-32-nfl-teams-nfl?access_token=$ACCESS_TOKEN

{
  og_object: {
    id: "956517601094822",
    description: "Naughty or nice, every NFL team deserves something for Christmas. So in lieu of Santa Claus, Bill Barnwell is here to distribute some gifts.",
    title: "Barnwell: Handing out holiday gifts to all 32 teams",
    type: "article",
    updated_time: "2015-12-23T17:20:55+0000",
    url: "http://espn.go.com/nfl/story/_/id/14424066"
  },
  share: {
    comment_count: 0,
    share_count: 354
  },
  id: "http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all-32-nfl-teams-nfl"
}

Кроме того, если вы попытаетесь получить лайки, вы получите следующую ошибку https://graph.facebook.com/http://rottentomatoes.com?fields=likes&summary=1&access_token=$ACCESS_TOKEN

{
  error: {
    message: "(#100) Tried accessing nonexisting field (likes) on node type (URL)",
    type: "OAuthException",
    code: 100,
    fbtrace_id: "H+KksDn+mCf"
  }
}
...