Facebook GraphAPI 通过限制减少数据量

Facebook GraphAPI Reduce amount of data with limit

所以我很难找到记录的位置(如果有的话),但是当我从 FB 图表请求数据时收到以下错误消息API。

"Please reduce the amount of data you're asking for, then retry your request"

我拨打的电话是:

/v2.3/user1/posts?fields=object_id&limit=100

如果我把它改成:

/v2.3/user2/posts?fields=object_id&limit=100

它 returns 100 项。

为什么它对一个用户有效,而对另一个用户无效?

两个请求都通过访问令牌(不属于任何一个用户)进行身份验证,无论是 运行 我的代码还是 developers.facebook.com

对 Graph API 调用实施了应用级和用户级速率限制。在您的情况下,可能是您在短时间内与 user1 进行了大量通话。

您可以查看此页面以了解有关 Facebook 速率限制的更多信息:https://developers.facebook.com/docs/marketing-api/api-rate-limiting(即使 URL 指的是营销 API,该信息也适用于图表 API.)

的回答是正确的。 Facebook returns 如果它发现 需要太多 内部资源来响应您的请求,就会出现此错误。

因此你必须按照回复所说的去做:限制它

这可以通过 (afaik) 两种方式完成:

  1. 使用 limit 参数并减少您期望来自 API
  2. 的响应数量
  3. 提供时间范围(使用 since 和/或 until)以仅获取特定时间范围内的数据(帖子/视频)。

我们遇到了与您相同的问题,但从页面检索视频。不幸的是,使用 limit 参数 无效 ,即使我将其设置为 limit=1。但是通过使用 since / until 参数我们终于得到了结果。

因此,我建议实施一个时间范围以减少数据量,或者拆分您发出的请求量。例如如果您希望过去 3 个月和 运行 的所有帖子都出现上述错误:使用 sinceuntil 将您的请求分成两半。如果还是不行:继续分裂...

=> 分而治之;)

希望对您有所帮助, KR,ebbmo

最近在 FB 上提交的错误讨论了同样的错误。他们似乎承认这可能是一个错误,但没有提供太多其他信息。

https://developers.facebook.com/bugs/1904674066421189/