2012-01-18 72 views
2

这里是我用得到Facebook好友列表中的代码,该类数据返回null,谁能告诉我我在这里做错了什么?

public class FBUser 
{ 
    public long Id { get; set; } 
    public string Username { get; set; } 
    public string Name { get; set; } 
    public string Link { get; set; } 
    public string Picture { get; set; } 

    // empty constructor 
    public FBUser() 
    { } 
} 

列表类

public class FbFriendList 
{ 
    public WcdyList<FBUser> Data { get; set; } 
} 

,这里是我使用来获取好友列表的方法:

try 
{ 
    FacebookClient client = new FacebookClient(accesstoken); 
     FbFriendList myfriends = client.Get<FbFriendList>("me/friends?fields=id,name,username,picture,link"); 

     if (myfriends.Data.Count > 0) return myfriends.Data; 
     else return null; 
} 
catch (Exception ex) { } 

myfriends正在返回数据对象null,你能告诉我我在做什么错吗?

+0

你有没有试图让这个信息与[OpenGraph Explorer工具](http://developers.facebook.com/tools/explorer)使用相同的'access_token'? – 2012-01-18 12:12:46

+0

@JuicyScripter yup我使用开放图形浏览器进行了检查,我得到的结果是,但这里的问题是Get方法,因为我没有得到有关SDK的所有方法的任何文档,它有一个方法'public T Get (字符串路径)'我试图使用 – 2012-01-18 12:22:30

回答

2

你可以用这样的代码来获得朋友的信息

FacebookClient client = new FacebookClient(accesstoken); 
dynamic result = app.Get("me/friends?fields=id,name,username,picture,link"); 

现在你可以映射所产生的数据到您的自定义类...

更新:
使用好像你Data而不是data(你应该坚持原来的域名回应)

public class FbFriendList { 
    public WcdyList<FBUser> data { get; set; } 
} 

UPDATE2:
您可以遍历列表得到朋友详细介绍是这样的:

foreach (dynamic friend in result.data) { 
    string friendId = friend.id; 
    string friendName = friend.name; 
    // etc... 
} 

或者这样,如果你还没有在

var resultData = (IList<object>)result.data; 
foreach (var friendObj in resultData) { 
    var friend = (IDictionary<string, object>)friendObj; 
    string friendId = friend["id"]; 
    string friendName = friend["name"]; 
    // etc... 
} 
+0

我认为动态只能在.Net 4.0中使用,而我正在使用.Net 3.5 – 2012-01-18 13:48:33

+0

你是对的。对于'.Net'波纹管版本4.0,您可以使用字典var result =(IDictionary )app.Get(“我/朋友?fields = id,名称,用户名,图片,链接”) – 2012-01-18 13:54:47

+0

我知道我可以像这样使用,但我想问,为什么当我试图使用这个'public T获取(字符串路径)'时,它不会返回所需的结果,并且请告诉我在填充结果变量后如何阅读好友列表。 – 2012-01-18 16:27:52

相关问题