数据返回null,谁能告诉我我在这里做错了什么?
这里是我用得到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,你能告诉我我在做什么错吗?
你可以用这样的代码来获得朋友的信息
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...
}
或者这样,如果你还没有在.net4:
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...
}
我认为动态只能在.Net 4.0中使用,而我正在使用.Net 3.5 – 2012-01-18 13:48:33
你是对的。对于'.Net'波纹管版本4.0,您可以使用字典var result =(IDictionary
我知道我可以像这样使用,但我想问,为什么当我试图使用这个'public T获取
你有没有试图让这个信息与[OpenGraph Explorer工具](http://developers.facebook.com/tools/explorer)使用相同的'access_token'? – 2012-01-18 12:12:46
@JuicyScripter yup我使用开放图形浏览器进行了检查,我得到的结果是,但这里的问题是Get方法,因为我没有得到有关SDK的所有方法的任何文档,它有一个方法'public T Get(字符串路径)'我试图使用 –
2012-01-18 12:22:30