Facebook在线好友

3

我尝试了一些在这里找到的解决方案来获取我的在线好友列表:

Facebook FQL查询获取所有在线用户

如何使用Facebook API和FQL获取在线好友列表?

这是我的FQL查询:

$fql = "SELECT uid, name, online_presence, status FROM user WHERE uid IN 
( SELECT uid2 FROM friend WHERE uid1 = '".$me['id']."')";

但是我朋友的在线状态字段99%为空。我只能获取6/7个朋友的在线状态(活跃、离线),状态字段也一样。
我该如何获取完整的在线状态和状态数据?我缺少了什么?我需要为我的应用程序请求特定的权限(目前我只有基本权限)。
非常感谢。
编辑:@Roozbeh15的解决方案是正确的,但我需要找出为什么结果与我在聊天中拥有的用户数量不同。fql用户计数始终小于fb聊天中的用户。你知道为什么吗?
1个回答

8
您需要user_status权限来读取用户的状态,以及user_online_presence和/或friends_online_presence权限来获取在线状态。 这里是完整的权限列表。

谢谢,问题已解决!但是我从这个查询中得到的在线用户总数与我在聊天中实际拥有的用户不同。你知道为什么吗? - Laphroaig
不确定,但在Facebook的数据中存在许多不一致之处。例如,您从link_stats表中获得的点赞数通常与您在URL上实际看到的点赞数不同。 - Roozbeh15
1
另外,我认为你的朋友可以编辑你的设置,以便应用程序不会看到他们的信息,例如他们的在线状态... 另一个原因可能是由于Facebook使用的分布式系统。同步所有机器需要一些时间。无论如何,作为开发人员,我认为你无法对此做任何事情。祝好运。 - Roozbeh15
是的,我也在这个上面。再次非常感谢你。 - Laphroaig
我得到了这个错误:代码:803 消息:“(#803)您请求的一些别名不存在:SELECT uid,name,online_presence,status FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 =“ undefined”” 类型:“OAuthException” - Totty.js
1
以friends_*开头的权限已不再有效。是否有一种新API可以获取在线好友? - Ruwanka De Silva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接