Facebook Graph API и FQL, как рассчитывать на фото, оба неверны?


Привет всем,

Я сделал приложение facebook для конкурса, которое позволяет пользователям загружать свои фотографии. После загрузки фотография будет размещена в специальном альбоме в их профиле. После того, как фотография есть, пользователи должны собрать как можно больше лайков. В Facebook Graph API и Facebook FQL я пытался получить количество лайков, но полученные лайки не всегда совпадают с лайками в профиле пользователя.

Некоторые пользователи утверждают, что имеют больше потом 200 лайков, но только API получили максимум 101 любит до сих пор.


Все пользователи должны предоставить приложению следующие разрешения:

user_hometown, publish_stream, read_stream, user_photos and offline_access


Используя Facebook PHP SDK 3.0.1 я попробовал этот запрос FQL, чтобы собрать количество лайков фотографии:

  # fql query
  $fql = "SELECT object_id FROM like WHERE object_id=" . $photo_id;

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

  # run batch request
  $likes = $this->facebook->api($request);

  # return like count
  return count($likes);


Я также попробовал следующий запрос Graph API (также с Facebook PHP SDK 3.0.1), чтобы собрать количество лайков a фото:

$likes = $this->facebook->api($photo_id.'/likes');
return count($likes['data']);


Странно, не похоже, возвращать правильные результаты. Я могу понять, если API немного неточен, но согласно API некоторые фотографии получили 100 лайков сегодня утром, а затем 0 лайков через несколько часов.

Есть ли у кого-нибудь идеи, что я могу сделать неправильно? Должны ли фотографии и их альбомы быть общедоступными? Нужно ли людям, которым понравилась фотография, иметь публичный профиль, чтобы появиться в API? Нужно ли мне просить дополнительные разрешения?

Любая помощь или предложения будут высоко оценены!

3 3

3 ответа:

Просто здесь была та же проблема. Лайки, похоже, по умолчанию разбиты на сотни страниц. Переопределите этот параметр с помощью параметра запроса" LIMIT".

Есть ли у кого-нибудь идеи, что я могу сделать неправильно?

Да, я считаю, что использование плагина "нравится" для конкурса противоречит политике Facebook. Смотрите: https://www.facebook.com/promotions_guidelines.php

   # 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