Facebook API поиск в приложении Asp.mvc 3 - PullRequest
0 голосов
/ 30 декабря 2011

РЕДАКТИРОВАНИЕ Я ищу пользователей в фейсбуке, используя graph api в моем приложении asp.net mvc 3.

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 объектов (каждый поиск возвращает разныеколичество объектов).Я думаю, если я добавлю, например, «Анна» в параметр запроса - результат должен быть более 10000. Почему это так?Есть ли способ получить всех пользователей по какому-либо ключевому слову?

1 Ответ

1 голос
/ 30 декабря 2011

Что касается производительности, Facebook будет разбивать их результаты на страницы.Если вы посмотрите на конец объекта JSON, там должен быть объект подкачки, содержащий следующие и предыдущие ссылки.Таким образом, чтобы получить все результаты, вам нужно будет выполнить несколько запросов и объединить их на своей стороне.

...