在PHP中的Facebook好友列表中查找UserId的有效方法

时间:2012-08-10 19:02:15

标签: php facebook facebook-graph-api

我正在试图确定两个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?

1 个答案:

答案 0 :(得分:2)

您应该尝试使用 FQL 。似乎它可以满足您的需求:

SELECT uid1, uid2 FROM friend WHERE uid1 = me() AND uid2 = ...

Facebook Documentation - FQL friend table

如果您得到结果,您就知道这两个用户是朋友。