我正在试图确定两个Facebook用户是否是朋友。我有两个用户的userId,所以我可以使用以下方法获取其中一个用户的朋友列表:
$friends = $facebook->api('/me/friends');
User对象的文档说id是“string”。问题是,当退回好友列表时,它不是作为STRING订购的,而是以NUMBER的形式订购。例如,我看到了:
{"name":"AAAAA","id":"200000"},
{"name":"XXX YYY","id":"700000"},
{"name":"BBBB EEEE","id":"1200000"},
{"name":"OOOO GGGGG","id":"1200001"},
{"name":"PPPPP EEEEEE","id":"130000"},
{"name":"CCCCC CCCCCC","id":"100002999999999"},
...
如果我想在列表中找到userId,如果它是“数字”,我可以将id转换为数字并进行二进制搜索。
但是,有些userIds非常大,所以我怀疑它们必须是64位整数。而且因为我在32位Linux系统上运行,PHP不支持64位整数。
那么,这是否意味着按顺序迭代此列表的最佳方式,还是可能有更有效的方法来查找userId?
答案 0 :(得分:2)
您应该尝试使用 FQL 。似乎它可以满足您的需求:
SELECT uid1, uid2 FROM friend WHERE uid1 = me() AND uid2 = ...
Facebook Documentation - FQL friend table
如果您得到结果,您就知道这两个用户是朋友。