c# - 数据返回 null,谁能告诉我我在这里做错了什么?

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

最佳答案

您可以使用这样的代码来获取好友信息

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

更新2:
您可以遍历列表以获取 friend 的详细信息,如下所示:

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...
}

关于c# - 数据返回 null,谁能告诉我我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8909467/

相关文章:

c# - 有没有办法在派生类中使用同名但类型不同的属性?

c# - 获取已删除的 DataGridView 行的单元格值

facebook - 如何验证内容是否在 Facebook 上共享?

facebook - facebook iframe 应用程序中的 iframe 大小问题

facebook - 与 react-native-fbsdk 共享图像?

facebook - 如何防止异物出现在 FB Places 图形调用中?

Facebook 图形 API : Get Events by Venue

c# - 我可以尝试从 BlockingCollection<T> 中获取一组项目吗?

api - 我们能够按时间轴访问生活事件吗?

c# - 自动映射器从内部属性映射到目标类