How to get list of online friends using FQL with f

2020-02-01 12:33发布

问题:

I have got my friends list after getting logging in on facebook using Facebook connect Java script client API. I want list of my friends that are online at given time.

回答1:

You can use the online_presence column of the user table, which gives the user's current Facebook Chat status. This isn't a foolproof "is this user online right now" but it does serve the general purpose as such. This column is a string which has one of four possible values: active, idle, offline, or error. Querying the friend table in conjunction with this can yield the result you requested (in this case I consider "online" to mean active or idle):

SELECT uid FROM user WHERE
  online_presence IN ('active', 'idle')
  AND uid IN (
    SELECT uid2 FROM friend WHERE uid1 = $user_id
  )

UPDATE:

Note that you need the user_status permission to read the user's status and user_online_presence and/or friends_online_presence permissions for the online_presence.

Thanks to https://stackoverflow.com/users/613631/laphroaig for bringing this up (Facebook online friend), and to https://stackoverflow.com/users/570958/roozbeh15 for his answer.