无法获得正确的用户在线状态
我有一个应用程序,我要检查用户的在线状态。现在,当我检查时,它告诉我每个人都处于离线状态。无法获得正确的用户在线状态
用户向应用程序授予user_online_presence和offline_access(以及其他一些权限)。然后我存储访问令牌。我可以随时访问我需要的任何信息,除了在线状态。
要获得网上存在,我第一次访问令牌:
$ facebook-> setAccessToken($用户[ '的accessToken']);
然后我查询Facebook的:
$ FQL = “SELECT UID,名称,online_presence,FROM用户状态其中uid =” $用户[ 'FacebookID'];。
$ param = array('method'=>'fql.query','query'=> $ fql,'callback'=>'');
$ fqlResult = $ facebook-> api($ param);
当我检查的结果,我得到的ID,名称和状态,但是每个人都显示为脱机状态,即使是我,当我知道我在线和活跃:
[online_presence] =>离线
任何帮助得到这个工作将不胜感激。谢谢大家的时间。
有2个许可证
- user_online_presence,为用户
- friends_online_presence,朋友
http://developers.facebook.com/docs/reference/api/permissions/
online_presence是上网聊天,不在线的Facebook
用户的Facebook聊天状态。返回一个字符串,其中一个活动, 空闲,离线或错误(当Facebook无法确定服务器端存在 信息时)。当该信息受限于隐私 原因时,该查询不会返回用户的 Facebook聊天状态。
此外,我跑了fql?q=SELECT name, online_presence FROM user where uid IN (Select uid1 from friend WHERE uid2=me())
,它相当准确地列出了我朋友的在线状态。只有极少数不正确。也许这是由于Facebook的更新系统滞后,或者他们正在缓存时间过长的信息等
谢谢,当用户未通过我的应用程序登录时,我正在检查用户的user_online_presence。这样,我应该能够看到他是否脱机。我在隐私设置时看到了一个空白的在线状态,所以我知道这不是问题。我没有在我的帐户中设置聊天隐私,我的朋友可以在线看到我并可以聊天,但用户 - > online_presence仍然一直在以离线状态返回我。我的其他用户也是如此。 –
'online_presence'仅用于**聊天,并且**无**与用户是否已登录**您的**应用程序有关。 – DMCS
谢谢。我**不**试图找出用户是否登录到** my **应用程序,我试图找出用户是否登录到Facebook并可用于聊天。所以你同意我应该可以使用'online_presence'来查明这一点。不幸的是,我的问题依然存在:无论如何,我都会**脱机**。而且我在线,我没有聊天隐私设置。 –
我成功地用这个FQL查询: -
SELECT name,online_presence FROM user WHERE uid
IN (SELECT uid2 FROM friend WHERE uid1 = me())
让所有的在线朋友。输出为“空闲”,“活动”和“离线”。所有的值都是绝对正确的。
谢谢,我只需要user_online_presence,因为我只是在查看用户何时在线。 –