Вы можете использовать FQL мульти-запрос, чтобы получить все сразу, вот как:
{
"friends":"SELECT name, uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())",
"friendsLikes":"SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid FROM #friends)",
"pages":"SELECT page_id, name FROM page WHERE page_id IN (SELECT page_id FROM #friendsLikes)"
}
Вы можете проверить это в http://developers.facebook.com/tools/explorer/
Вы собираетесь получить три результата устанавливает один за другим, список друзей, список всех их симпатий вместе, а затем список имен страниц.
(Обратите внимание, что выполнение запроса может занять некоторое время, поэтому вы можете поместить LIMIT в первую строку. После uid1 = me() введите LIMIT 5, например, для тестирования ...)
Затем включите его в своем коде на любом языке/платформе, которую вы используете, например, на прошивке: http://developers.facebook.com/docs/howtos/run-fql-queries-ios-sdk/
Отлично! Теперь есть способ сгруппировать этих пользователей по идентификатору пользователя непосредственно в запросе? –
К сожалению, это невозможно. Facebook FQL поддерживает только очень простой SQL и нет JOIN. Вы можете увидеть больше здесь: https://developers.facebook.com/docs/technical-guides/fql/ –
Я снова попробовал тот же запрос, и у меня есть {"error": "Request failed"}. Похоже, что полученный json превысил пороговый размер. Кроме того, невозможность группировать по uid является реальным обломком. –