2010-03-03 3 views
0

Im используя facebook api, чтобы подключиться к facebook и получить список моих друзей в приложении winforms C#.Проверка онлайн-статуса пользователя facebook

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

В то время как эти две строки кода, принесите мне список друзей для вошедшего в систему пользователя. Мне не удалось выяснить, кто из этих пользователей в настоящее время находится в сети. Я проверил весь тип Facebook.Schema.User для того же, но безрезультатно.

Любые подсказки?

Спасибо.

ответ

1

Вы смотрели на это: Get Online Friends

проводки код для использования в будущем:

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); 
    }