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 ответа:
Просто здесь была та же проблема. Лайки, похоже, по умолчанию разбиты на сотни страниц. Переопределите этот параметр с помощью параметра запроса" 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