2012-01-03 111 views
65

我们对Facebook的图形API做出的调用数量是否有限制? 如果有,那么我们每天可以为每个应用打几次电话?什么是Facebook的Graph API调用限制?

+0

的[Facebook的图形API限制疑问](http://stackoverflow.com/questions/5911068/facebook-graph-api-limit-doubt) – 2015-03-28 16:31:50

+0

可能重复的有,但你可以忘掉所有这些,只需使用http://api-turtle.launchrock.com来控制和限制你的API吞吐量 – 2017-09-28 13:29:56

回答

56

的最佳答案从另一个forum

“一些测试和讨论Facebook平台团队之后这个问题,没有官方限制我所知道的或可以在文档中找到的。不过,我已经每600秒发现600元话费,每个令牌&每个IP是在哪里,他们阻止你。我也看到了一些应用的速率限制,但没有任何数字。

作为一般规则,每秒一个呼叫不应受到速率限制,表面上看起来非常严格,但请记住,您可以批量调用某个呼叫nd使用订阅API来获取更改。“

+2

,那么whatelse是个问题呢? – 2012-01-03 13:55:41

+0

我对每个访问令牌或每个应用是600次/ 600秒还是有点困惑。 – 2012-01-03 14:05:33

+0

检查粗体部分。根据作者的'每令牌和每IP' – 2012-01-03 14:08:43

19

根据Facebook dev policies "I. Features and Functionality"的唯一的限制是:

(>5M MAU) or (>100M API calls per day) or (>50M impressions per day).

(MAU是指每月用户)

它没有说什么,他们会超出限制后做...

今天我已经跑到这个限制:

Calls to mailbox_fql have exceeded the rate of 300 calls per 600 seconds.

总的来说每个表都有不同的限制,在大多数情况下,fql不会为每个fql返回超过30个对象。另外,在我看来,你可以超过一个表的限制,同时你可以访问不同的表,问题是api是否被阻止(在超过限制之后)对于所有用户或者只对超过了限制...无论如何,超过限制后,你必须等待大约10分钟,比没关系。

从技术上讲,您可以在mailbox_fql表中每10分钟获得至多300 * 30个对象。

+0

这些是合同需要到达的阈值,而不是技术上的严格限制,Mangobug的回答 – Igy 2012-07-17 20:55:33

+0

并非真正“呼叫mailbox_fql已超过每600秒300次呼叫的速率”。意味着它是一种在现实生活中强制实施的硬限制。这也会表明不同的表格有不同的限制。 (这是真的)。 – 2012-08-21 22:51:05

+0

哦,我想你是正确的,减少拨打电话,我猜 – Igy 2012-08-21 23:45:54

6

从Facebook文档

用户级别速率限制

这个速率限制在为广告除外API的所有API调用的用户级应用。

速率限制在滑动窗口上实时发生。 每个电话都被分配一个分数。有一个最高分数为n。 用户根据所做的呼叫累积一段时间的分数。 达到最高分数时,将引发限制错误。 错误,代码:17,消息:用户请求限制达到

应用级别速率限制

该速率限制在应用程序级别全局上。广告API调用被排除在外。

速率限制在过去的一个小时内在滑动窗口上实时发生。 收集的统计信息包括呼叫和查询次数,花费的CPU时间以及用于每个应用程序的内存。 每个资源的数量都与给定应用的每月活跃用户数相乘。 当应用程序使用超过其允许的资源时,将引发错误。 错误,代码:4,消息:应用请求限制达到

检查这个文档 https://developers.facebook.com/docs/reference/ads-api/api-rate-limiting/

+0

哪里可以做到如何做用户级调用和应用程序级调用的例子?这一切都经历了应用程序ID,无论哪个应用程序级别限制?他们对此没有很好的文档。 – 2014-07-15 21:12:31

+0

链接到文档是错误的。正确的是https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – 2016-11-22 07:49:20

2

根据FB文档,在分批计数作为一个单独的呼叫的每个元素。

We currently limit the number of requests which can be in a batch to 50, but each call within the batch is counted separately for the purposes of calculating API call limits and resource limits. For example, a batch of 10 API calls will count as 10 calls and each call within the batch contributes to CPU resource limits in the same manner.

请检查:https://developers.facebook.com/docs/graph-api/making-multiple-requests https://developers.facebook.com/docs/marketing-api/api-rate-limiting

31

现在是official

每个应用程序被赋予任何在六十分钟的窗口每用户200的API调用的分配。

从Facebook的文件为2015年10月7日的,这里的速率限制在图形API是如何工作的:

  • 速率限制在你的Facebook的AppId做。如果您的应用达到了限速 ,则该应用的所有拨打电话将不仅限于每个用户的 。
  • 速率限制是通过计算您的应用 前一天的用户数量并添加今天的新登录数来计算的。这给出了您的应用拥有的用户数 。

举一个例子,如果你的应用程序昨天有10个用户,今天有5个新登录,那么这会给你15个用户的基础。这意味着您的应用可以在任何60分钟的窗口中进行((10 + 5)* 200)= 3000个API调用。

点击此处了解详情:https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

- 更新为2016年4月12日的 -

Facebook拥有现在Rate Limit Dashboard,这是看你的应用程序的限速超过容易得多。它看起来像这样:

enter image description here

+0

AFAIK该限制仅适用于Graph API版本为2.5及以上的应用程序。旧版应用程序尚未具备此限制。 – Marius 2015-10-23 11:40:16

+0

如果我们达到极限,Facebook有可能返回错误'Error:read ECONNRESET'? – 2016-09-14 18:13:32

+0

实际限制不是每个用户,而是每日活跃用户的平均值:“您的应用每个用户每小时可以拨打200个电话,例如,如果您的应用有100个用户,这意味着您的应用可以制作20,000个电话,这不是每个用户的限制,所以一个用户可以拨打19,000个电话,另一个用户可以拨打1000个电话,这个限制是根据前一小时拨打的电话数量来计算的。“ – 2016-12-05 22:47:44

相关问题