问题
Our app is currently being throttled, we are getting
{
"error": {
"message": "(#4) Application request limit reached",
"type": "OAuthException",
"code": 4
}
}
On App
->Insights
->Developer
->Activity & Errors
we are seeing
Restrictions
App is unrestricted.
API Throttling
None during specified period.
So it doesn't look like we should be getting throttled, but I can see a warning,
Calls Are Too CPU Intensive - 2 hours, 38 minutes
Method Fraction of Budget
gr:post:User/external_edge 109%
gr:post:User/scores 1.8%
gr:get:User/external_edge 1.8%
gr:get:/fql 1.2%
ui:feed:async:get: 0.43%
gr:post:OpenGraphAction/commen 0.15%
ui:apprequests:iframe:get: 0.08%
gr:delete:Post 0.04%
gr:delete: 0.02%
ui:feed:async:post: 0.02%
I assume this means that we're posting too often to User/external_edge... but I don't know what User/external_edge is -- how do I find this out?
Also shouldn't we have gotten an email or warning before being cut off from the API? What do we need to do to get unthrottled?
回答1:
The limits reset automatically after a while, i think it's a 600 second rolling window for calculation of the limit, but might extend the blocking to 3600seconds if the limit is actually reached; Unfortunately there's no way in the API response to see how close you are to the CPU and call limits, and the CPU limit in particular is hard to predict because calls have vastly varying resources needed to process them.
gr:post:User/external_edge
is Open Graph actions, the other methods are named after the name of the connection (e.g. gr:post:User/scores
is a Graph API (gr
) POST request (post
) against the scores
connection of the User
object)
If your app is being throttled on these and you're not posting a large number of actions per user, check which access token is being used to make the posts; if it's an App Access Token, use the User Access Token for the user making the posts instead
来源:https://stackoverflow.com/questions/13923429/facebook-app-being-throttled-what-is-grpostuser-external-edge