0

我正在尝试确定两个 Facebook 用户是否是朋友。我有两个用户的 userId,所以我可以使用以下方法获取其中一个用户的朋友列表:

   $friends = $facebook->api('/me/friends');

User 对象的文档说 id 是一个“字符串”。问题是当返回好友列表时,它不是按字符串排序的,而是按数字排序的。例如,我看到:

{"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 转换为一个数字并进行二进制搜索。

但是,一些 userId 非常大,所以我怀疑它们必须是 64 位整数。而且因为我在 32 位 Linux 系统上运行,所以 PHP 不支持 64 位整数。

那么,这是否意味着它是按顺序遍历此列表的最佳方式,还是可能有更有效的方式来查找 userId?

4

1 回答 1

2

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

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

Facebook 文档 - FQL 好友表

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

于 2012-08-10T21:50:31.553 回答