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。 这是为什么?有没有办法通过某个关键字检索所有用户?
答案 0 :(得分:1)
对于性能问题,Facebook将对其结果进行分页。如果查看JSON对象的末尾,应该有一个页面对象,其中包含下一个和上一个链接。因此,要获得所有结果,您需要运行多个查询并将它们聚合在一起。