2009-11-25 6 views

Répondre

13

Vous pouvez utiliser la colonne online_presence du tableau user, qui indique l'état actuel du Chat Facebook de l'utilisateur. Ce n'est pas un infaillible "est cet utilisateur en ligne en ce moment" mais il sert l'objectif général en tant que tel. Cette colonne est une chaîne qui a l'une des quatre valeurs possibles: active, idle, offline ou error. Interrogation de la table friend conjointement avec ce qui peut donner le résultat que vous avez demandé (dans ce cas, je considère « en ligne » pour signifier active ou idle):

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

MISE À JOUR:

Notez que vous avez besoin du user_status l'autorisation de lire le statut de l'utilisateur et les autorisations user_online_presence et/ou friends_online_presence pour le online_presence.

Merci à https://stackoverflow.com/users/613631/laphroaig pour l'avoir soulevé (Facebook online friend), et à https://stackoverflow.com/users/570958/roozbeh15 pour sa réponse.

+0

Je l'essaie, mais 99% de ma liste d'amis ont la valeur de_présence vide. Pourquoi? de l'aide? J'ai fait une nouvelle question ici: http://stackoverflow.com/questions/5666153/facebook-online-friend – Laphroaig

Questions connexes