答案 0 :(得分:11)
您应该通过检查以下错误消息以编程方式处理速率限制。如果遇到错误,则应在下次调用之前进入时间等待循环。我的一个高流量应用程序帐户会监视此错误并将减慢速度。
来自:https://developers.facebook.com/docs/bestpractices/
费率受限(API_EC_TOO_MANY_CALLS)如果您的应用程序拨打过多电话,API服务器可能会自动对您进行速率限制, 返回“API_EC_TOO_MANY_CALLS”错误。一般来说,这不应该 发生。如果是,那是因为您的申请已经确定 要进行太多的API调用。迭代你的代码,这样你就可以了 尽可能少的电话,以保持用户体验 需要。您还应该避免复杂的FQL查询。要明白 如果您的应用程序受到限制,请转到数据洞察并单击 “节流”。
修改强>
正如Igy在评论主题中所报告的那样,该批次中的每个请求都计为1.对于600的最大限制示例,这意味着您可以触发15个批处理请求,每个请求包含50个调用。
答案 1 :(得分:8)
根据FB文档,批处理中的每个元素都算作一个单独的调用。
我们目前限制了可以在a中的请求数量 批次到50,但批次中的每个调用都单独计算 计算API调用限制和资源限制的目的。对于 例如,一批10个API调用将计为10个调用和每个调用 批处理中的内容有助于CPU资源限制 方式。
引自:https://developers.facebook.com/docs/reference/api/batch/
然而,我没有经验证据。
大卫
答案 2 :(得分:6)
根据我的经验,他们会根据个人的要求计算个人请求(无论是否批量生产)。
例如,如果我正在尝试每批包含10个请求的1批/秒,我很快就会收到“太多的电话”。
如果我正在进行1批/ 10秒,每批包含10个请求,我从未看到过多次调用。
我个人认为没有理由比常规API调用更喜欢批处理。
答案 3 :(得分:4)
我现在使用Facebook API获得了相当大的痛苦经历,我可以说:
我正在进行的最频繁的图形API调用包含很多嵌套字段,我注意到在完成200次之后我达到了“600次调用/ 600秒”。所以基本上这个电话在我的情况下计数为3 ......
你有很多其他的费率限制,但没有一个是正确记录的......
答案 4 :(得分:2)
批次调用肯定会按批次中的每个项目计算。一个50个项目的批量调用相当于使用图表的50个api调用。