Facebook 请求:什么算作 1 个请求?

Facebook Request(s): what counts as 1 request?

我目前正在创建一个应用程序来轮询 facebook 的数据。首先以这种方式请求页面...

pageID/posts?fields=id,message,created_time,type&limit=250

这 returns 个页面的前 250 post 个。然后我检查是否设置了下一页,以及是否为接下来的 250 posts 发出另一个请求。我以递归方式继续此操作,直到不再有 post 为止。

对于返回的每个 post,我也从图表 api 中获取 post 详细信息。

我的问题是如果我在一个页面上有 500 posts。这等同于 502 个请求吗? (每个 post 有 500 个请求 + 2 用于解析页面数据以获得 posts)或者我对 "request" 的理解不正确。我知道当批处理调用时,批处理中包含的每个查询实际上都算作 1 个请求。目标是避免 600 次调用/600 秒速率限制。谢谢!

每个 API 调用都是......好吧,1 个请求。因此,每次您以任何限制使用 /posts 端点时,都将是 1 个请求。例如,如果您执行您发布的那个调用,那么这将是一个 returns 250 个元素的请求。

批处理请求速度更快,但批处理中的每个调用都算作一个请求。因此,如果您将 10 个调用合并为一个批次,则将是 10 个请求。批处理调用的好处实际上只是它们快得多:与批处理中最慢的调用一样快。

如果你想获得 500 个帖子,你的那个例子,你只需要 2 个电话。第一个有 250 个返回元素,第二个通过使用 "next" 值中定义的 API 调用来获得另一个 250。请记住,默认值通常是 25 个元素,您不能使用你想要的任何限制。调用有最大限制,它会不时更改 afaik,所以不要指望每次都能得到相同的结果。

顺便说一句,不要拘泥于 600 次调用/600 秒的限制,这只是一个一般限制。实际限制是动态的,取决于许多因素。当然不是 public。但如果你真的达到了极限,那你还是做错了。