2013-03-16 3 views
2

Я пытаюсь получить список друзей, используя xamarin/monotouch.Xamarin/monotouch получить список друзей Facebook

Это то, что я сделал:

if (FBSession.ActiveSession.IsOpen) { 
      FBRequestConnection.StartWithGraphPath("me/friends?fields=id,name,picture,installed",(connection, result, error) => 
      { 
       if (error == null) 
       { 

       } 
      }); 
     } 

Я получаю результирующий объект, и я могу извлечь данные с:

result.ValueForKey (new NSString ("data")) 

Мой вопрос, как я могу разобрать эти данные в пользовательские объекты ? Обычно я получаю ответ Json, который я разбираю. Каков правильный способ сделать это с помощью объекта результата?

Спасибо!

+0

Для обновленного решения: http://stackoverflow.com/questions/28564806/parse-facebook-friends-list –

ответ

3

Вот пример, который работает для меня:

var list = new List<FacebookFriend>(); 
var graphObject = result as FBGraphObject; 

using (var array = (NSMutableArray)graphObject[new NSString("data")]) 
{ 
    for (uint i = 0; i < array.Count; i++) 
    { 
     using (var friend = new NSDictionary(array.ValueAt (i))) 
     { 
      friends.Add (new FacebookFriend 
      { 
       ID = friend.ObjectForKey (new NSString ("uid")).ToString(), 
       Name = friend.ObjectForKey (new NSString ("name")).ToString(), 
      }); 
     } 
    } 
} 

Это внутри обратного вызова из запроса графа.

FacebookFriend - это просто класс с двумя свойствами, которые я использую.

+0

Действительно помог мне, он отлично работает, спасибо! :) –

+0

Спасибо. Я не понимаю, почему FB не просто возвращает JSON .. Я думаю, что это ошибка, поскольку в своих документах для SDK он отображает JSON в качестве ответа. – winnicki

+0

Это действительно удобный парсер json для FB, разве это не чудесно? Он превращает json в NSMess. – jonathanpeppers

Смежные вопросы