4

Using Facebook SDK (http://facebooksdk.codeplex.com/), you do something like this...

        string myAccessToken = "something";
        FacebookClient client = new FacebookClient(myAccessToken);
        IDictionary<string, object> friendData = (IDictionary<string, object>)client.Get("/me/friends");

Now how do you get the friends data out from the dictionary?

Charles
  • 50,943
  • 13
  • 104
  • 142
001
  • 62,807
  • 94
  • 230
  • 350

2 Answers2

21

Your function for storing friends list from json data:

string myAccessToken = "something";         
FacebookClient client = new FacebookClient(myAccessToken);         

var friendListData = client.Get("/me/friends");
JObject friendListJson = JObject.Parse(friendListData.ToString()); 

List<FbUser> fbUsers = new List<FbUser>();
foreach (var friend in friendListJson["data"].Children())             
{   
    FbUser fbUser = new FbUser();
    fbUser.Id = friend["id"].ToString().Replace("\"", "");                 
    fbUser.Name = friend["name"].ToString().Replace("\"", "");                 
    fbUsers.Add(fbUser);
}

Class for facebook user

Class FbUser {
    String Id { set; get; }
    String Name { set; get; }
}
Quibblesome
  • 25,225
  • 10
  • 61
  • 100
asdf_enel_hak
  • 7,474
  • 5
  • 42
  • 84
  • how can we get birthday info along with that response ?any idea?. i used this but did't work ("/me/friends?fields=id,name,birthday"); – achukrishnan Jul 18 '14 at 05:08
1

As I had the same issue and was looking a nice solution. I did the same thing with linq resulting in less code. And most of the time less is more :)

FacebookClient client = new FacebookClient(accessToken);
dynamic friendListData = client.Get("/me/friends");
var result = (from i in (IEnumerable<dynamic>)friendListData.data
             select new
             {
                 i.name,
                 i.id
             }).ToList();
pabes
  • 343
  • 9
  • 16