我有一个 Android 应用程序,它每 N 分钟检查一次来自 Facebook 的新通知,其中 N 超过 5 分钟(默认为 30 分钟)。该应用程序还向 Facebook 的 Graph API 发出一些用户生成的请求。 最近(从我们为新通知添加计划轮询的那一刻起),Facebook 开始限制我们的应用程序(大多数情况下会出现错误#17“达到用户请求限制”,但有时会出现错误#4“达到应用程序请求限制”)。 Insights Dashboard 为我们提供了以下统计数据:每天 255,000 个请求,432 个用户。这为每个用户每天发出大约 590 个请求,这远远低于我能找到的任何提到的 API 限制。 Facebook 关于速率限制的信息确实很模糊,以下是您通常可以在不同来源找到的一些数字:
- 每个 IP 每个 token 每 600 秒 600 次调用。
- 每个应用每天调用 1 亿次。
- 每个用户 token 每天 10,000 次调用。
我们的应用定期执行的计划请求是一个简单的 FQL:
SELECT sender_id,created_time,title_text FROM notification WHERE recipient_id=me() AND is_hidden = 0 AND is_unread = 1
即使最小更新间隔为 5 分钟,每天也会被触发 288 次。 我们尝试用 Graph API 调用替换此请求,但它没有改变任何事情。
我知道还有其他应用程序具有类似的功能,并且它们似乎没有这些限制。
有人知道是否有任何方法可以避免受到 Facebook 如此低的调用量限制吗?
谢谢!
最佳答案
事实证明,代码中存在一个令人讨厌的错误,该错误确实很难重现,有时会迫使应用程序连续 10-30 分钟循环发出 API 请求。只有一小部分客户遇到这个问题,但这足以触及 API 限制。
FB API 似乎根据应用程序的用户数量计算限制,因此即使调用量相当有限,我们也遇到了速率限制问题。 另一个观察结果是,尽管事实上只有有限数量的用户进行大量 API 调用,但 FB 确实对所有用户进行了限制。
希望这些信息能够以某种方式帮助解决类似问题。
关于Facebook API - 每个用户 token 的少量请求达到用户速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18239069/