数据返回null,有人能告诉我这里做错了吗?

时间:2012-01-18 11:39:46

标签: c# facebook facebook-graph-api facebook-c#-sdk

以下是我用来获取Facebook好友列表的代码

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,你能告诉我这里做错了什么吗?

1 个答案:

答案 0 :(得分: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...
}