2010-03-03 6 views
0

Im utilisant l'API facebook pour se connecter à facebook et obtenir ma liste d'amis dans une application c winforms.vérifier le statut de l'utilisateur facebook en ligne

FaceBookService1.ConnectToFacebook(); 
FriendList.Friends = FaceBookService1.Friends.GetUserObjects(); 

alors que ces deux lignes de code obtiennent la liste des amis pour l'utilisateur connecté. Im incapable de savoir lequel de ces utilisateurs sont actuellement en ligne. J'ai vérifié le type entier de Facebook.Schema.User pour le même, mais en vain.

Des indices?

Merci.

Répondre

1

Avez-vous regardé ceci: Get Online Friends

Code d'affichage pour une utilisation future:

public Collection<User> GetOnlineFriends() 
    { 
     Collection<string> onlineFriends = GetOnlineFriendIds(); 
     return GetUserInfo(StringHelper.ConvertToCommaSeparated(onlineFriends)); 
    } 

public Collection<string> GetOnlineFriendIds() 
    { 
     Collection<string> friendList = new Collection<string>(); 
     string xml = GetOnlineFriendsXML(); 
     if (!String.IsNullOrEmpty(xml)) 
     { 
      XmlDocument xmlDocument = LoadXMLDocument(xml); 
      XmlNodeList nodeList = xmlDocument.GetElementsByTagName("fql_query_response"); 
      if (nodeList != null && nodeList.Count > 0) 
      { 
       XmlNodeList results = xmlDocument.GetElementsByTagName("user"); 
       foreach (XmlNode node in results) 
       { 
        friendList.Add(XmlHelper.GetNodeText(node, "uid")); 
       } 
      } 
     } 
      return friendList; 
    } 

public string GetOnlineFriendsXML() 
    { 
     Dictionary<string, string> parameterList = new Dictionary<string, string>(3); 
     parameterList.Add("method", "facebook.fql.query"); 

     if (!string.IsNullOrEmpty(_userId)) 
     {     
      parameterList.Add("query", 
       String.Format(CultureInfo.InvariantCulture, "{0}{1}{2}", 
           "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=", _userId, ") AND 'active' IN online_presence")); 

     } 
     else 
     { 
      throw new FacebookException("User Id is required"); 
     } 
     return ExecuteApiCallString(parameterList, true); 
    } 
Questions connexes