проверка статуса пользователя Facebook на сайте - PullRequest
0 голосов
/ 03 марта 2010

Я использую API Facebook для подключения к Facebook и получения списка друзей в приложении c # winforms.

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

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

Есть какие-нибудь подсказки?

Спасибо.

1 Ответ

1 голос
/ 03 марта 2010

Вы смотрели на это: Получить в сети друзей

Почтовый код для будущего использования:

  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);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...