Facebook的Graph API调用限制是什么?

我们对facebook的图表API有没有任何限制? 如果有,那么我们每天可以打多less个电话?

从另一个论坛这个问题的最佳答案

“在经过与Facebook平台团队的一些testing和讨论之后,我没有发现官方的限制,或者可以在文档中find官方的限制,但是我发现每600秒600个呼叫 ,他们阻止你,我也看到一些基于应用程序的速率限制,但没有任何数字。

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

现在它是官方的 :

在任何给定的60分钟窗口中,每个应用程序被分配给每个用户200个API调用

从截至2015年10月7日的Facebook文档中,下面是Graph API的速率限制的工作原理:

  • 限速是在你的Facebook AppId上完成的。 如果您的应用程序达到了费率限制,则针对该应用程序所做的所有调用将不仅限于每个用户。
  • 速率限制是通过计算您的应用前一天的用户数量并添加今天的新login数来计算的。 这给你的应用程序的用户的基数。

例如,如果您的应用程序昨天有10个用户,今天有5个新的login,那么这将为您提供15个用户的基础。 这意味着您的应用程序可以在任何60分钟的窗口中进行((10 + 5)* 200)= 3000个API调用。

更多信息在这里: https : //developers.facebook.com/docs/graph-api/advanced/rate-limiting

截至20164月12日的更新

Facebook现在已经有一个限速仪表板 ,如果你的应用程序的速率限制已经超出了,那么就更容易了。 它看起来像这样:

在这里输入图像说明

根据Facebook的开发政策“I.function和function”唯一的限制是:

(> 5M MAU)或(每天> 1亿次API调用)或(>每天> 5000万次展示)。

(Mau表示每月用户)

它没有说超过限制后他们会做什么…

今天我跑到这个限制:

调用mailbox_fql已经超过了每600秒300次调用的速率。

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

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

从Facebook文档

用户级别限制

此限速适用于所有API调用的用户级别,但广告API除外。

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

应用程序级别限制

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

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

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

根据FB文档,批量中的每个元素都被视为一个单独的调用。

我们目前将可批量处理的请求数量限制为50个,但是为了计算API调用限制和资源限制,批处理中的每个调用都会单独计算。 例如,一批10个API调用将被计为10个调用,批处理中的每个调用以相同的方式对CPU资源限制作出贡献。

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