简体   繁体   中英

What are the detailed requirements of Facebook's graph API rate limits?

Facebook outlines their policy on the Graph API app-level rate limits in their official docs: developers.facebook.com, and I am already familiar with that information.

However, beyond specifying the number of requests allowed, their documentation fails to clarify the limitations imposed on graph api access.

For instance, elsewhere in their docs , they state that:

  • Stats is collected for number of calls and queries made, cpu time spent, memory used for each app.
  • There is a limit for each resource multiplied by monthly active users of a given app.

Yet they fail to specify how the resources are allocated, or even to provide vague guidelines about how to distribute your API calls. How fast is too fast? Are there rate limits imposed on an app based on qualities other than the number of requests, or the speed at which they are made? For instance, is there a limitation on how many requests can be made from a single IP address within a certain window of time?

I am working on an app that has tens of thousands of daily active users. The documentation specifies that each app is allocated 200 API calls per user in any given 60 minute window. This means that with 10,000 users I should be allowed to make two million calls per hour. Actually, I am making only about 30 thousand per hour, yet I am still intermittently receiving error code #4 from my calls, which, according to the documentation, indicates App Level Throttling. Why?

More context on my particular circumstance:

  • I am making calls to Facebook's URL endpoint.
  • I distribute my 30K calls evenly across the hour.
  • I batch my requests in accordance with the Facebook documentation on multiple requests.
  • I pass my app's api key information in all of my calls.
  • Intermittently, and without any distinguishable pattern, I receive error code 4 from my calls, which indicates App Level Throttling.

In the end, it turned out that I was formatting my access token incorrectly, thus my app's increased rate-limit ceiling was never in effect. In the end, it was simply a matter of inserting an underscore into the key called access_token in my api call. With that change I am now able to make many tens of thousands of calls per hour.

Therefore my original understanding of the documentation was correct, and there was no contradiction in the behavior of the API. The detailed requirements of Facebook's graph API limits are listed in their official documentation, which is linked in the question. In my case, I can make 200 calls per user in a 60 minute sliding window.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM