所以我很难找到记录的位置(如果有的话),但是当我从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控制台运行它都会得到同样的错误
答案 0 :(得分:2)
来自CBroe的回复是正确的。如果Facebook发现需要太多内部资源来回复您的请求,则会返回此错误。
因此,您必须执行回复所说的内容:限制。
这可以通过(afaik)2种方式完成:
public static func ==(lhs: Self, rhs: Self) -> Bool
参数并减少您希望从API中获得的响应数量limit
和/或since
)以仅获取特定时间范围内的数据(帖子/视频)。我们遇到了与您相同的问题,但是从网页中检索视频。不幸的是,使用until
参数确实无法正常工作,即使我将其设置为limit
也是如此。但是通过使用limit=1
/ since
参数,我们终于得到了结果。
因此,我建议实施一个时间范围,以减少数据量,或者分割您所做的请求数量。例如如果您想要过去3个月内的所有帖子并遇到上述错误:请使用until
和since
将您的请求分成两半。如果仍然不起作用:继续分裂......
=> 分而治之;)
希望它有所帮助, KR,ebbmo
答案 1 :(得分:0)
最近提交给FB的错误提到了同样的错误。他们似乎接受这可能是一个错误,但没有其他信息即将到来。
答案 2 :(得分:-5)
在Graph API调用上强制执行应用级和用户级速率限制。在您的情况下,可能是您在很短的时间内与user1进行了大量的通话。
您可以查看此页面以了解有关Facebook的速率限制的更多信息:https://developers.facebook.com/docs/marketing-api/api-rate-limiting(即使URL指向Marketing API,该信息也适用于图谱API。)