0

真的是初学者的问题。

据我了解,以下代码查询 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
        }

    }
4

1 回答 1

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

这些都可以很容易地转换为字符串的类型(实际上就是它们),但是 uid 也可以转换为 long。

为了获得所有朋友的姓氏,您必须将 FQL 修改为如下内容:

SELECT uid,pic_square,first_name,last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())

由于您在原始查询中遗漏了“last_name”。

于 2013-03-08T00:47:15.557 回答