Как запросить счетчик подобных объектов в Facebook, таких как альбом или фотография, через fql? - PullRequest
4 голосов
/ 15 июня 2010

Вот сложный вопрос, как вы можете получить счетчик объектов Facebook, таких как альбом или фотография? Я знаю, что в фейсбуке есть таблица fql link_stat, которая позволяет получить счетчик ссылок для внешнего URL, но, похоже, он не работает, если объект находится в фейсбуке. Если вы получаете доступ к лайкам через API opengraph для определенного объекта, он вернет максимум 4 пользователям, которым нравится этот объект, хотя может быть несколько тысяч пользователей, которым он нравится. Любые подсказки?

Ответы [ 5 ]

1 голос
/ 20 августа 2015

Очевидно, что ответ сильно изменился с тех пор, как вы впервые задали вопрос, но вот ответ на сегодняшний день.Используйте API Graph Facebook, чтобы выяснить, как получить информацию о каждой фотографии в альбоме из Facebook:

https://graph.facebook.com/albumID/photos?fields=id,likes.summary(true),comments.summary(true)&after=XXXXXX&access_token=XXXXXX

Используйте Ajax для отправки запроса GET:

$.ajax({
    dataType: "json",
    method: "GET",
    url: "https://graph.facebook.com/" + albumID + "/photos",
    data: {fields: "id,likes.summary(true),comments.summary(true)",
        limit: 100,
        after: afterStr,
        access_token: token})

ПеременнаяafterStr - это идентификатор следующей страницы данных.

Затем для подсчета лайков и комментариев мы получили следующее:

var dArr = msg.data;
var i = 0;
for (i = 0; i < dArr.length; i++) {
    like += dArr[i].likes.summary.total_count;
    comment += dArr[i].comments.summary.total_count;
}

Публикуем результат в HTML, используя идентификаторы:

$("#likeID").html(like);
$("#commentID").html(comment);

Рабочая демо здесь .

Надеюсь, это поможет!

1 голос
/ 15 марта 2011

Мне удалось это сделать, изменив настройки конфиденциальности. Если вы запросите в таблицах данные о пользователях типа XYZ, он не вернет данные до тех пор, пока пользователь не установит Видимость для друзей (для фотографии, альбома, видео, ссылки или заметки), независимо от того, запросили ли вы разрешения (из вашего приложения).

Так, например, я - пользователь XYZ, и мне понравилась определенная ссылка, опубликованная моим GHI. и я использую приложение, разработанное для Facebook и разрешить доступ к моим ссылкам. теперь, если приложение пытается получить доступ к ссылкам, которые мне понравились на Facebook, приложение не сможет получить ссылку, опубликованную GHI (которая мне понравилась), до тех пор, пока GHI не установит видимость своих ссылок на друзей.

если кому-то понадобится дополнительная помощь по этому вопросу, вернитесь на этот форум.

С уважением, Haroon

1 голос
/ 19 июня 2012
# fql query
   $fql = "SELECT like_info FROM photo WHERE object_id=" . $photo_id;

   # api request
   $request = array(
    'method' => 'fql.query', 'query' => $fql
   );

  # run batch request
  $likeInfo = $facebook->api(array(
    'method' => 'fql.query', 'query' => $fql
  ));

  var_dump($likeInfo);die;
=> get like info of photo`enter code here`
1 голос
/ 30 сентября 2010

См. http://developers.facebook.com/docs/reference/fql/like

Вы можете выполнить fql query , чтобы получить список лайков на основе object_id, а затем выполнить подсчет.

0 голосов
/ 22 января 2014

В наши дни, если вы знаете, какой тип поста вы запрашиваете, вы можете использовать FQL. Например, если вы хотите узнать, сколько лайков есть для фотографии, которую вы можете использовать:

SELECT like_info FROM photo WHERE object_id = 414122065292107

Что возвращает следующее:

{
  "data": [
    {
      "like_info": {
        "can_like": true, 
        "like_count": 1354, 
        "user_likes": false
      }
    }
  ]
}

Подобные подходы существуют для разных типов контента, но мне это кажется несовместимым, поэтому посмотрите в документации FQL.

https://developers.facebook.com/docs/reference/fql/

...