自 11 月下旬以来,我们正在达到 Facebook API 的应用程序限制。我们正在获取用户的照片,并选择了 25 张朋友的照片 → 这是在用户签名时完成的(我们正在为用户构建相册)。
上述行动是有限的,但直到11月底才被限制。我们正在使用批量调用从相册中获取照片 - 有没有更好的方法来不受限制地获取此信息?
顺便说一句,根据 Facebook,我们每天拨打 100 万次电话,但根据我们的统计,我们每天拨打 18 万次电话。
只获取用户的照片而不获取他朋友的照片不是我们的解决方案。
自 11 月下旬以来,我们正在达到 Facebook API 的应用程序限制。我们正在获取用户的照片,并选择了 25 张朋友的照片 → 这是在用户签名时完成的(我们正在为用户构建相册)。
上述行动是有限的,但直到11月底才被限制。我们正在使用批量调用从相册中获取照片 - 有没有更好的方法来不受限制地获取此信息?
顺便说一句,根据 Facebook,我们每天拨打 100 万次电话,但根据我们的统计,我们每天拨打 18 万次电话。
只获取用户的照片而不获取他朋友的照片不是我们的解决方案。
Facebook API 限制并没有真正记录在案,但显然它类似于:每 600 秒,每个令牌和每个 IP 600 次调用。由于网站受到限制,引用相关部分:
在与 Facebook 平台团队进行了一些测试和讨论后,我知道或可以在文档中找到没有官方限制。但是,我发现每 600 秒、每个令牌和每个 IP 有 600 个调用是关于它们阻止你的地方。我还看到了一些基于应用程序的速率限制,但没有任何数字。
作为一般规则,每秒一个呼叫不应受到速率限制。从表面上看,这似乎非常严格,但请记住,您可以批处理某些调用并使用订阅 API 来获取更改。
因为您可以通过 Javascript SDK 在客户端访问 Graph API;我认为,如果您从客户端请求照片,您将不会遇到任何application limit
问题,因为获取数据的是用户(每个人都有唯一的 ID),而不是您的应用程序服务器(唯一的 ID)。
如果您所做的一切都通过服务器进行,这可能意味着巨大的重构。但如果您有这么多请求,这似乎是最好的解决方案(因为它会让您的服务器喘不过气来)。
否则,您可以尝试batch
request,但如果您的流量很大,我想您已经这样做了。
如果这些都不起作用,根据Facebook 平台政策,您应该联系他们。
如果您超过或计划超过以下任何阈值,请与我们联系,因为您可能会受到附加条款的约束:(>5M MAU)或(>100M API 调用/天)或(>50M 印象/天)。
Facebook“Graph API Rate Limiting”文档说代码错误#4
是应用程序级别的速率限制,这与用户级别的速率限制不同。虽然它没有给出任何确切的数字,但它将他们的应用级别速率限制描述为:
此速率限制在应用程序级别全局应用。广告 api 调用被排除在外。
- 速率限制在过去一小时的滑动窗口上实时发生。
- 收集的统计信息包括调用次数和查询次数、花费的 CPU 时间、每个应用程序使用的内存。
- 每个资源乘以给定应用程序的每月活跃用户数都有一个限制。
- 当应用程序使用超过其允许的资源时,将引发错误。
- 错误,代码:4,消息:已达到应用程序请求限制
文档还提供了避免速率限制的建议。对于应用程序级别限制,它们是:
建议:
- 验证错误代码 (4) 以确认节流类型。
- 不要突然打电话,把电话分散一整天。
- 智能获取数据(重要数据、非重复数据等)。
- 实时洞察,确保 API 调用的结构能够以最少的请求数量读取尽可能多的主页帖子的洞察。
- 不要两次获取用户提要(如果两个 App 用户有共同的特定朋友)
- 如果好友数量超过 250,则不要连续获取所有用户的好友提要。将获取的时间分开在不同的日期。作为一种选择,首先获取应用用户的新闻提要(我/家庭),以检测哪些朋友对应用用户更重要。然后,首先获取这些朋友的提要。
- 考虑使用以下参数限制/过滤请求:“since”、“until”、“limit”
- 对于页面相关的调用,使用实时更新来订阅数据的变化。
- 字段扩展允许将多个图形查询“加入”到单个调用中。
- 用于检查自上次检查以来数据查询是否已更改的 Etags。
- 对于没有庞大用户群的页面管理开发者,让页面的管理员接受该应用程序以增加用户数。
最后,文档提供了以下信息提示:
- 批处理调用不会减少api调用的次数。
- 进行并行调用不会减少 api 调用的次数。