真的是一个初学者问题。
以下代码根据我的理解查询Facebook好友。如何将所有朋友的名字和姓氏作为字符串获取,以便将其放在列表框中?
谢谢
private async void FqlAsyncExample()
{
try
{
// query to get all the friends
var query = string.Format("SELECT uid,pic_square,first_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1={0})", "me()");
dynamic parameters = new ExpandoObject();
parameters.q = query;
dynamic result = await _fb.GetTaskAsync("fql", parameters);
TotalFriends.Text = string.Format("You have {0} friend(s).", result.data.Count);
}
catch (FacebookApiException ex)
{
// handle error message
}
}
答案 0 :(得分:0)
result.data的数据类型是IEnumerable。你最好的办法是做这样的事情。
dynamic friends = result.data;
foreach(var friend in friends)
{
Console.WriteLine(friend.first_name);
}
这会将您的每个朋友的名字输出到控制台。因为你正在使用一个动态对象,无论你放在后面。需要是JSON键字段的确切名称。在您的情况下,选项将是
friend.uid
friend.pic_square
friend.first_name
这些都可以很容易地转换为字符串的类型(这实际上就是它们),但是也可以将其转换为long。
为了获得所有朋友的姓氏,你必须修改你的FQL:
SELECT uid,pic_square,first_name,last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())
由于您在原始查询中遗漏了“last_name”。