'me / friends'で友達のリストを取得し、リストを繰り返し処理して'%id%/likes'で特定の友達のいいねを取得するというアイデアは特に好きではありません。これには時間がかかります。
1回のAPI呼び出しでユーザーの友達のいいねを一括クエリする方法はありますか?
ありがとう。
'me / friends'で友達のリストを取得し、リストを繰り返し処理して'%id%/likes'で特定の友達のいいねを取得するというアイデアは特に好きではありません。これには時間がかかります。
1回のAPI呼び出しでユーザーの友達のいいねを一括クエリする方法はありますか?
ありがとう。
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/でテストでき
ます。3 つの結果セットが次々に取得されます。友人のリスト、すべてのいいね! のリスト、ページ名のリストです。
(クエリの実行には時間がかかる場合があるため、最初の行に LIMIT を配置することをお勧めします。uid1 = me()の後に、たとえばテスト用にLIMIT 5を配置します...)
次に、iOS など、使用している言語/プラットフォームのコードにそれを含めます: http://developers.facebook.com/docs/howtos/run-fql-queries-ios-sdk/
Graph API を使用して同じクエリを実行することもできます。
https://graph.facebook.com/me/friends?fields=name,id,likes.limit(100).fields(id,name)&limit=100
これにより、グループ化の問題が解決されます。