我在本地MySQL数据库中记录了我的应用程序的所有用户。我拥有获取用户在线状态[UID, access_token
并授予extended permission
]所需的所有相关信息。
如何获取所有用户的在线状态?
我目前使用的方法是分别查询每个用户:
$facebook->api(array
(
'access_token' => 'x',
'method' => 'fql.query',
'query' => "SELECT uid, name, first_name, last_name, online_presence FROM user WHERE uid = x"
));
但现在这是150个用户的时间。我甚至不是在谈论400+或1000 +。
P.S。 multiquery对我不起作用,因为询问用户存在需要提供access_token
。
答案 0 :(得分:1)
我的解决方案:
SELECT name, uid, online_presence FROM user WHERE uid=me()
答案 1 :(得分:0)
对于所有在线
SELECT name,uid FROM user WHERE
online_presence IN ('active', 'idle')
和朋友一起
SELECT name,uid FROM user WHERE
online_presence IN ('active', 'idle')
AND uid IN (
SELECT uid2 FROM friend WHERE uid1 = $user_id
)
答案 2 :(得分:0)
这不是一个真正的选择,就你为什么需要这些数据而言,它的目的并不明显。也许如果您能提供更多信息,可以使用不同的解决方案。
另一个可行的选择是依赖Chat API。这将告诉您在Facebook Chat中设置为在线状态的所有用户。这不太可靠,因为这包括用户仅访问Facebook聊天(桌面/移动软件)而不是实际的网站用户。