Facebook api搜索Asp.mvc 3应用程序

时间:2011-12-30 10:18:28

标签: facebook asp.net-mvc-3 facebook-graph-api social-networking

EDITED 我在我的asp.net mvc 3应用程序中使用图形api在facebook中搜索用户。

public void AsyncSearch(ICollection<JSonObject> result, string query, string objectType)
    {
        var fbClient = new FacebookClient(FacebookTokens.AccessToken);
        var searchUri = string.Format("/search?q={0}&type={1}, query, objectType);


        var tempResult = (JsonObject)fbClient.Get(searchUri);
        var elements = (JsonArray)tempResult.Values.ToArray()[0];

        elements.ForEach(element =>
                            {
                            result.Add(element);
                            });

        var next = (JsonObject)tempResult.Values.ToList()[1];

        while (next.Keys.Contains("next"))
        {
        tempResult = (JsonObject)fbClient.Get((string)next["next"]);
            elements = (JsonArray)tempResult.Values.ToArray()[0];
            elements.ForEach(element =>
                                {
                            result.Add(element);
                                });

            next = (JsonObject)tempResult.Values.ToList()[1];
        }
    }

但结果最多包含600个对象(每个搜索返回不同数量的对象)。 我想,如果我在查询参数中放置“anna” - 结果必须超过10000。 这是为什么?有没有办法通过某个关键字检索所有用户?

1 个答案:

答案 0 :(得分:1)

对于性能问题,Facebook将对其结果进行分页。如果查看JSON对象的末尾,应该有一个页面对象,其中包含下一个和上一个链接。因此,要获得所有结果,您需要运行多个查询并将它们聚合在一起。