Facebook Graph API减少数据量限制

时间:2015-03-30 16:14:15

标签: facebook facebook-graph-api

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

"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

它返回100个项目。

为什么它适用于一个用户而不是另一个用户?

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

3 个答案:

答案 0 :(得分:2)

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

因此,您必须执行回复所说的内容:限制

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

  1. 使用public static func ==(lhs: Self, rhs: Self) -> Bool参数并减少您希望从API中获得的响应数量
  2. 提供时间范围(使用limit和/或since)以仅获取特定时间范围内的数据(帖子/视频)。
  3. 我们遇到了与您相同的问题,但是从网页中检索视频。不幸的是,使用until参数确实无法正常工作,即使我将其设置为limit也是如此。但是通过使用limit=1 / since参数,我们终于得到了结果。

    因此,我建议实施一个时间范围,以减少数据量,或者分割您所做的请求数量。例如如果您想要过去3个月内的所有帖子并遇到上述错误:请使用untilsince将您的请求分成两半。如果仍然不起作用:继续分裂......

    => 分而治之;)

    希望它有所帮助, KR,ebbmo

答案 1 :(得分:0)

最近提交给FB的错误提到了同样的错误。他们似乎接受这可能是一个错误,但没有其他信息即将到来。

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

答案 2 :(得分:-5)

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

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