我并不特别喜欢用“me/friends”获取朋友列表,然后遍历列表以获得“%id%/likes”的特定朋友的喜欢——这需要很长时间。
有没有办法在单个 API 调用中批量查询用户朋友的喜好?
谢谢。
我并不特别喜欢用“me/friends”获取朋友列表,然后遍历列表以获得“%id%/likes”的特定朋友的喜欢——这需要很长时间。
有没有办法在单个 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/
中进行测试。
您将依次获得三个结果集、朋友列表、他们所有喜欢的列表以及页面名称列表。
(请注意,查询可能需要一段时间才能执行,因此您可能希望在第一行放置一个 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
这将解决分组问题。