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

4

我在本地的MySQL数据库中记录了我的应用程序的所有用户。 我拥有获取用户在线状态所需的所有相关信息[UID,access_token和授予的扩展权限]。

我如何获取所有用户的在线状态?

我目前使用的方法是单独查询每个用户:

$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

3个回答

1

我的解决方案:

SELECT name, uid, online_presence FROM user WHERE uid=me()

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
  )

这个不起作用:您的语句无法索引。WHERE子句必须包含可索引的列。这些列在链接表中用*标记。 - Laphroaig
我也在努力寻找一个有效的解决方案。 - Laphroaig

0

这并不是一个真正的选择,关于为什么你需要这些数据,它的目的并不明显。也许如果你能提供更多信息,可能会有不同的解决方案。

另一个可行的选择是依赖聊天API。这将告诉您在Facebook聊天中设置为在线状态的所有用户。这不太可靠,因为这包括仅访问Facebook聊天(桌面/移动软件)而不是实际网站用户的用户。


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