Facebook SDK C# - 获取好友列表

4
使用Facebook SDK (http://facebooksdk.codeplex.com/),你可以这样做...
        string myAccessToken = "something";
        FacebookClient client = new FacebookClient(myAccessToken);
        IDictionary<string, object> friendData = (IDictionary<string, object>)client.Get("/me/friends");

现在,你该如何从字典中获取好友数据呢?
2个回答

21

从JSON数据中存储好友列表的函数:

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

Facebook用户的类

Class FbUser {
    String Id { set; get; }
    String Name { set; get; }
}

怎样才能在响应中获取生日信息?有什么想法吗?我尝试了这个 ("/me/friends?fields=id,name,birthday"),但没有起作用。 - achukrishnan

1

我曾经遇到过同样的问题,一直在寻找一个好的解决方案。我使用Linq做了同样的事情,代码更少了。而且大多数时候,简洁就是美 :)

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

在我的.NET 4.5.1上无法编译。 - Kiquenet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接