Привет всем,
Я создал приложение для конкурса на 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? Нужно ли запрашивать дополнительные разрешения?
Любая помощь или предложения будут с благодарностью!