Я пытаюсь получить ВСЕ лайки пользователей с помощью FQL. Ниже приведены мои исследования, включая то, что я пробовал, и проблемы с каждой попыткой.
1) Самый простой способ - запросить таблицу в uid. Так что это возвращает 57 (для меня) лайков в чужой ленте.
SELECT object_id, post_id, user_id
FROM like
WHERE user_id = me()
XML выглядит следующим образом (обратите внимание на необъяснимое отсутствие post_id)
<like>
<object_id>10150695050005313</object_id>
<post_id></post_id>
<user_id>xxxxxxxxxxx</user_id>
</like>
Вышеприведенное выглядит логичным шагом, но Facebook не индексирует поле user_id , поэтому я не могу использовать следующий код для получения дополнительной информации. Этот код не работает.
SELECT post_id, message
FROM stream
WHERE post_id IN (
SELECT object_id, post_id, user_id
FROM like
WHERE user_id = me()
)
2) Использование Graph API: / me / likes / извлекает информацию на 95 фан-страницах, но не из фотографий, видео, ссылок или офлайн-контента. Полный URL-адрес: https://graph.facebook.com/me/likes?access_token=
Например:
{
"data": [
{
"name": "BStU",
"category": "Organization",
"id": "136978696319967",
"created_time": "2011-06-29T12:09:17+0000"
},
{
"name": "Euchre",
"category": "Interest",
"id": "112355915446795",
"created_time": "2011-06-29T12:06:07+0000"
},
3) Этот FQL возвращает то же, что и код выше, 95 страниц фанатов:
SELECT page_id,name
FROM page
WHERE page_id IN (
SELECT page_id
FROM page_fan
WHERE uid=me()
)
Итак, подведем итог, в идеале я бы мог вернуть все лайки для пользователя, независимо от объекта. Я готов продвинуться вперед со смесью фанатских страниц и потоковых сообщений, если я смогу вернуть их все вместе с данными одним FQL-запросом.
Есть предложения? Я добавлю, что я пытаюсь сделать это без использования REST API, потому что он будет ухудшен (когда-нибудь?), Поэтому использование fql.multiquery не вариант.