Facebook Graph API и FQL, как рассчитывать на фото, неверны? - PullRequest
3 голосов
/ 18 октября 2011

Привет всем,

Я создал приложение для конкурса на 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);


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

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


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

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

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

Ответы [ 3 ]

1 голос
/ 10 ноября 2011

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

0 голосов
/ 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;

=> получить информацию о фото

0 голосов
/ 24 января 2012

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

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

...