3

我有一个适用于 Android 的应用程序,它每 N 分钟检查一次来自 Facebook 的新通知,其中 N 超过 5 分钟(默认为 30 分钟)。该应用程序还向 Facebook 的 Graph API 发出一些用户生成的请求。最近(从我们为新通知添加计划轮询的那一刻起),Facebook 开始限制我们的应用程序(主要是错误 #17 “达到用户请求限制”,但有时它会给出错误 #4 “达到应用程序请求限制”)。Insights Dashboard 为我们提供以下统计数据:每天 255,000 个请求,432 个用户。这使得每个用户每天大约有 590 个请求,这与我能够找到的任何提到的 API 限制相去甚远。Facebook 关于速率限制的信息非常模糊,以下是一些您通常可以在不同来源中找到的数字:

  1. 每个 IP 每个令牌每 600 秒 600 次调用。
  2. 每个应用每天 1 亿次调用。
  3. 每个用户令牌每天 10,000 次调用。

我们的应用程序定期执行的计划请求是一个简单的 FQL:

从通知中选择 sender_id、created_time、title_text WHERE recipient_id=me() AND is_hidden = 0 AND is_unread = 1

即使最小更新间隔为 5 分钟,它每天也会被触发 288 次。我们试图用 Graph API 调用替换这个请求,但它并没有改变任何事情。

我知道还有其他具有类似功能的应用程序,它们似乎没有这些限制。

有谁知道是否有任何方法可以避免被 Facebook 限制在如此低的通话量中?

谢谢!

4

1 回答 1

6

事实证明,代码中有一个非常难以重现的严重错误,有时会迫使应用程序连续 10-30 分钟循环发出 API 请求。只有一小部分客户有这个问题,但这足以达到 API 限制。

似乎 FB API 是根据应用程序的用户数量计算限制的,所以即使调用量相当有限,我们也遇到了速率限制问题。另一个观察结果是,尽管只有有限数量的用户进行了大量的 API 调用,但 FB 确实限制了所有用户。

希望这些信息对解决类似问题有所帮助。

于 2013-09-09T10:24:22.833 回答