Facebook GraphAPI通过限制减少数据量

jus*_*ile 8 facebook facebook-graph-api

因此,我很难找到该文件的记录位置(如果有的话),但是从FB GraphAPI请求数据时出现以下错误消息。

"Please reduce the amount of data you're asking for, then retry your request"
Run Code Online (Sandbox Code Playgroud)

我打的电话是:

/v2.3/user1/posts?fields=object_id&limit=100
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为:

/v2.3/user2/posts?fields=object_id&limit=100
Run Code Online (Sandbox Code Playgroud)

它返回100个项目。

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

这两个请求都通过访问令牌(不属于任何一个用户)进行身份验证,无论是从我的代码运行,还是从developers.facebook.com的Facebook Graph API控制台运行它,我都遇到相同的错误

ebb*_* mo 6

CBroe的响应是正确的。如果Facebook发现需要太多内部资源来响应您的请求,则返回此错误。

因此,您必须按照响应说的去做:限制它

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

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

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

因此,我建议实施一个时间表以减少数据量,或者拆分您发出的请求量。例如,如果您希望获得过去3个月的所有帖子并遇到上述错误:请使用since和将请求分成两半until。如果仍然不起作用:继续分裂...

=> 分而治之;)

希望对您有帮助,KR,ebbmo