42

自 11 月下旬以来,我们正在达到 Facebook API 的应用程序限制。我们正在获取用户的照片,并选择了 25 张朋友的照片 → 这是在用户签名时完成的(我们正在为用户构建相册)。

上述行动是有限的,但直到11月底才被限制。我们正在使用批量调用从相册中获取照片 - 有没有更好的方法来不受限制地获取此信息?

顺便说一句,根据 Facebook,我们每天拨打 100 万次电话,但根据我们的统计,我们每天拨打 18 万次电话。

只获取用户的照片而不获取他朋友的照片不是我们的解决方案。

4

3 回答 3

38

Facebook API 限制并没有真正记录在案,但显然它类似于:每 600 秒,每个令牌和每个 IP 600 次调用。由于网站受到限制,引用相关部分:

在与 Facebook 平台团队进行了一些测试和讨论后,我知道或可以在文档中找到没有官方限制。但是,我发现每 600 秒、每个令牌和每个 IP 有 600 个调用是关于它们阻止你的地方。我还看到了一些基于应用程序的速率限制,但没有任何数字。

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

因为您可以通过 Javascript SDK 在客户端访问 Graph API;我认为,如果您从客户端请求照片,您将不会遇到任何application limit问题,因为获取数据的是用户(每个人都有唯一的 ID),而不是您的应用程序服务器(唯一的 ID)。

如果您所做的一切都通过服务器进行,​​这可能意味着巨大的重构。但如果您有这么多请求,这似乎是最好的解决方案(因为它会让您的服务器喘不过气来)。

否则,您可以尝试batchrequest,但如果您的流量很大,我想您已经这样做了。


如果这些都不起作用,根据Facebook 平台政策,您应该联系他们。

如果您超过或计划超过以下任何阈值,请与我们联系,因为您可能会受到附加条款的约束:(>5M MAU)或(>100M API 调用/天)或(>50M 印象/天)。

于 2013-01-08T19:59:10.760 回答
18

Facebook“Graph API Rate Limiting”文档说代码错误#4应用程序级别的速率限制,这与用户级别的速率限制不同。虽然它没有给出任何确切的数字,但它将他们的应用级别速率限制描述为:

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

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

文档还提供了避免速率限制的建议。对于应用程序级别限制,它们是:

建议:

最后,文档提供了以下信息提示:

  • 批处理调用不会减少api调用的次数。
  • 进行并行调用不会减少 api 调用的次数。
于 2014-10-24T14:49:03.570 回答
1

现在应用程序级速率限制每小时 200 个呼叫!

你可以看看这张图片。在此处输入图像描述

于 2019-05-25T22:46:50.290 回答