0

EDITED Я ищу пользователей в facebook, используя график api в моем приложении asp.net mvc 3.Facebook api search in Asp.mvc 3 app

public void AsyncSearch(ICollection<JSonObject> result, string query, string objectType) 
    { 
     var fbClient = new FacebookClient(FacebookTokens.AccessToken); 
     var searchUri = string.Format("https://stackoverflow.com/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. Почему? Есть ли способ получить всех пользователей по ключевому слову?

+0

Количество пользователей, у которых есть 'USERNAME' от их имени, может легко меняться со временем. Что вы подразумеваете под «всеми пользователями»? –

+0

Если я установил USERNAME, например, «anna» - в результате около 400 объектов. Думаю, пользователей гораздо больше с именем «anna». –

+1

, но вы получите также: «paging»: {«next»: ... и вы можете получить больше результатов. Вы можете изменить свой запрос на: «/ search? Q = USERNAME & type = user & limit = 200 -> и выбрать свою сумму .. –

ответ

1

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

Смежные вопросы