我有一个应用程序,我想检查用户的在线状态。现在,当我检查时,它告诉我每个人都处于离线状态。
用户向应用授予user_online_presence和offline_access(以及其他一些)权限。然后我存储访问令牌。除了在线状态,我可以随时访问我需要的任何信息。
为了获得在线状态,我首先设置了访问令牌:
$ facebook-> setAccessToken($用户[ '的accessToken']);
然后我查询Facebook:
$ fql =“SELECT uid,name,online_presence,status FROM user WHERE uid =”。$ user ['FacebookID'];
$ param = array('method'=>'fql.query','query'=> $ fql,'callback'=>'');
$ fqlResult = $ facebook-> api($ param);
当我检查结果时,我会得到身份证,姓名和状态,但每个人都被列为离线状态,即使我知道我在线并且有效:
[online_presence] =>离线
任何帮助实现这项工作将不胜感激。谢谢大家的时间。
答案 0 :(得分:1)
我成功地使用了这个FQL查询: -
SELECT name,online_presence FROM user WHERE uid
IN (SELECT uid2 FROM friend WHERE uid1 = me())
获取所有在线朋友。输出为“空闲”,“活动”和“离线”。所有的数值绝对正确。
答案 1 :(得分:0)
有2个许可证
http://developers.facebook.com/docs/reference/api/permissions/
答案 2 :(得分:0)
online_presence用于在线聊天,而不是在线聊天
用户的Facebook聊天状态。返回一个字符串,一个是活动的, 空闲,离线或错误(当Facebook无法确定存在时 服务器端的信息)。查询不返回用户的 当该信息受到隐私限制时,Facebook聊天状态 的原因。
另外,我跑fql?q=SELECT name, online_presence FROM user where uid IN (Select uid1 from friend WHERE uid2=me())
并且相当准确地列出了我朋友的在线状态。只有极少数是不正确的。也许这是因为Facebook更新系统滞后,或者可能是他们长时间缓存信息等等。