我正在使用一个应用程序,该应用程序在发出任何 API 请求时突然(在过去一周左右)开始收到以下响应:
{
"error": {
"message": "(#4) Application request limit reached",
"type": "OAuthException",
"code": 4
}
}
我的印象是 API 限制是每个身份验证令牌、每个 IP,但是一旦开始发生这种情况,它就会影响使用该应用程序的每个人。在 Developer Insights 下,我看到:
Restrictions
App is unrestricted.
API Throttling - 21 hours, 42 minutes
Too Many Calls - 21 hours, 42 minutes
Method Fraction of Budget
gr:get:User/home 441%
gr:get:Post/likes 145%
gr:get:User/feed 107%
gr:get:/fql 65%
gr:get:User/inbox 51%
gr:get:Post 26%
gr:get:User/events 20%
gr:get:User/notifications 18%
gr:get:Page/feed 18%
gr:get:ObjectComment 4.6%
Calls Are Too CPU Intensive - 21 hours, 2 minutes
Method Fraction of Budget
gr:get:User/home 3.5k%
gr:get:User/feed 382%
gr:get:Page/feed 205%
gr:get:Post/likes 106%
gr:get:User/inbox 63%
gr:get:/fql 40%
gr:get:User/notifications 25%
gr:get:Post 16%
gr:get:User/events 7.4%
gr:get:ObjectComment 3.2%
Calls Access Too Much Data - 7 hours, 57 minutes
Method Fraction of Budget
gr:get:User/home 372%
gr:get:User/feed 11%
gr:get:User/notifications 3.5%
gr:get:/fql 1.7%
gr:get:User/inbox 1.1%
gr:get:User/events 0.19%
gr:get:Post 0.07%
gr:get:Thread 0.04%
gr:get:Status 0.03%
dialog:oauth 0.03%
API Throttling Warnings - 21 hours, 42 minutes
Too Many Calls - 21 hours, 42 minutes
Method Fraction of Budget
gr:get:User/home 882%
gr:get:Post/likes 291%
gr:get:User/feed 215%
gr:get:/fql 129%
gr:get:User/inbox 101%
gr:get:Post 52%
gr:get:User/events 40%
gr:get:User/notifications 37%
gr:get:Page/feed 35%
gr:get:ObjectComment 9.3%
Calls Are Too CPU Intensive - 21 hours, 42 minutes
Method Fraction of Budget
gr:get:User/home 7.1k%
gr:get:User/feed 742%
gr:get:Page/feed 410%
gr:get:Post/likes 213%
gr:get:User/inbox 124%
gr:get:/fql 78%
gr:get:User/notifications 49%
gr:get:Post 42%
gr:get:User/events 15%
gr:get:ObjectComment 6.3%
Calls Access Too Much Data - 12 hours, 45 minutes
Method Fraction of Budget
gr:get:User/home 715%
gr:get:User/feed 64%
gr:get:Page/feed 30%
gr:get:User/notifications 9.1%
gr:get:/fql 7.4%
gr:get:User/inbox 6.4%
gr:get:Post 2.2%
gr:get:User/events 0.64%
dialog:optin 0.16%
gr:get:Thread 0.07%
很明显,我正在做一些 FB 不喜欢的事情,它限制了我的应用程序的访问。我每 300 秒才访问一次 FB。是不是太频繁了?我正在尝试利用实时更新,但我得到的更新是零星的;即使我看到官方 Facebook 网站更新,它们也不总是通过。所以如果我在 5 分钟内没有发现任何实时更新,我就从 FB 获取最新数据。
当它工作时,我的应用程序运行良好。但是我和我的用户每天至少会遇到一次这种限制性错误。当我开发应用程序时,只有少数测试人员,我们从未遇到过这个问题。只是自从该应用程序可供更多用户使用后,它才成为一个问题。
我希望在某处清楚地记录可能导致节流的限制。
有任何想法吗?