Asp.mvc 3 应用程序中的 Facebook api 搜索
Posted
技术标签:
【中文标题】Asp.mvc 3 应用程序中的 Facebook api 搜索【英文标题】:Facebook api search in Asp.mvc 3 app 【发布时间】:2011-12-30 10:18:28 【问题描述】:已编辑 我在我的 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。 这是为什么?有没有办法通过某个关键字检索所有用户?
【问题讨论】:
名称中包含“USERNAME”的用户数量很容易随时间变化。 “所有用户”是什么意思? 如果我设置 USERNAME,例如,“anna” - 结果是大约 400 个对象。我认为,有更多的用户名为“anna”。 但你也会得到: "paging": "next": ... 你可能会得到更多的结果。您可以将您的请求更改为:“/search?q=USERNAME&type=user&limit=200 -> 并选择您自己的金额.. 我将限制设置为 1000,但仍检索最多 600 个对象。我还检查分页。但我无法让所有用户“安娜”。 【参考方案1】:出于性能方面的考虑,Facebook 将对他们的结果进行分页。如果您查看 JSON 对象的末尾,应该有一个分页对象,其中包含下一个和上一个链接。因此,要获得所有结果,您需要运行多个查询并将它们聚合起来。
【讨论】:
以上是关于Asp.mvc 3 应用程序中的 Facebook api 搜索的主要内容,如果未能解决你的问题,请参考以下文章
将 asp.net WebForms 应用程序中的组合表单/Windows 身份验证迁移到 asp.net MVC 应用程序
从 ASP.net Core 2 MVC 应用程序中的 appSettings.json 存储/检索 ConnectionString