4

我在本地 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+。

ps multiquery 对我不起作用,因为询问用户存在需要提供access_token.

4

3 回答 3

1

我的解决方案:

SELECT name, uid, online_presence FROM user WHERE uid=me()
于 2011-12-08T05:09:46.637 回答
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
  )
于 2011-03-26T10:09:59.857 回答
0

这不是一个真正的选择,而且就您需要这些数据的原因而言,它的目的并不明显。也许如果您可以提供更多信息,则可以使用不同的解决方案。

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

于 2011-05-04T20:27:15.527 回答