Facebook应用速率限制#4-2018年6月错误

时间:2018-06-20 11:24:29

标签: facebook facebook-graph-api rate-limiting

Facebook似乎在速率限制方面遇到错误。 该错误在撰写本文时已经开放了好几天。 我确信所有人都知道这会严重影响这些开发人员的客户群。

请求限制似乎是零星的,与文档不符。 实际的速率限制似乎已大大增加,与“正常”相比仅允许一定比例的请求 似乎有几个人受到影响:

https://developers.facebook.com/support/bugs/169774397034403/

任何人都可以通过任何变通方法,建议或见解来缓解此问题吗?

提交的原始错误报告:

  

我们的应用程序遇到了“ GraphAPIError:(#4)   过去,开启和关闭“达到应用程序请求限制”错误   几天。我们的应用程序监视我们的几个用户帐户   并为每个FB页面提取数据,并且在过去几年中   进行了许多API调用以收集有关这些帐户的指标,   通常每天会发生少于两个小时的时间。   在5月25日,我们能够进行正常调用的1%的API   由于施用率的限制,在24小时内无法使用。 5月26日,   我们通常会在24小时内完成3%的API调用   达到相同的施用率限制。然后在27-29日   恢复正常,在不到2小时的时间内,我们就能完成100%   我们通常进行的API调用没有错误。然后在30号   能够进行33%的常规API调用,到目前为止,   31日,我们已经能够进行正常API调用的1%。没有   已经改变了,我们没有理由只应该   能够进行1%的API调用通常会花费几天,而不是   其他日子,尤其是因为我们的应用程序一直在做同样的事情   确切的事情已经好几年了。感谢您提供任何帮助。

5 个答案:

答案 0 :(得分:2)

因此,我们在速率限制方面也遇到了问题。

我们的解决方案有两个方面。

第一步,对于一直受到速率限制(原因是他们每天只有一个活跃用户但管理数百个页面)的客户,我们正在向该应用添加用户(员工用户)。由于out应用程序用于安排帖子,因此我们已经安排了这些“新”用户中每个人每天发布的帖子。这正在增加应用程序的每日活动用户数,从而提高了api的吞吐量。

长期解决方案是我们正在构建一项新服务来管理所有api调用。它将分析应用程序的吞吐量,根据需要限制api调用,并提供报告见解,以了解正在进行哪些调用以及由哪个客户/应用程序进行调用,以便我们更好地优化出局的调用。

仅需安装一个SDK即可进入城镇,但这似乎不再有用。

答案 1 :(得分:1)

我的解决方案:

因为我们只访问page/{page-id}端点,所以我们计算了每个请求的新帖子数,并延迟了对该资源的下一个请求。

因此,如果我们查询API并从100个项目中接收到1个新项目,那么在再次调用同一资源(页面ID)之前,我们将大大增加等待时间。

当我们收到的响应更接近“满”(即90/10)时,我们会再次略微增加时间。这样,我们就不会在请求“过时”数据上浪费请求。

我们还确保只调用“优先页面”,以减少争夺请求的项目总数

注意:

  • Facebook控制台上的Rate-Limit窗口小部件未反映 API的响应:

enter image description here

  • 即使仪表板没有反映出限制,我们仍会收到 通知:
  

{应用程序名称}已达到每小时费率限制的100%。所有API   调用应用程序将失败,直到您的应用程序低于限制为止   限制。

  • 根据文档,代码4专门针对应用令牌:

https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

  • 检查标题会发现原因是“ total_time”(请求的间隔恰好是10秒,直到我们收到403响应为止):

enter image description here

答案 2 :(得分:1)

我的应用程序会定期在帖子中查询我们自己以及竞争对手的页面。 (媒体网站的Facebook页面链接到新闻文章。我们希望将帖子和表现与竞争对手进行比较。)

我为减少问题所做的工作是将应用程序令牌用于竞争对手的帖子,而将页面特定的令牌用于我们自己的页面帖子。这大大减少了应用令牌上的呼叫次数,从而降低了速率限制的生效频率。

答案 3 :(得分:0)

我们的应用程序存在相同的问题。这是我能够收集的一些(全部)经验证据。我们的应用程序从某些公共页面获取数据(帖子和评论)。我们使用APP令牌(而不是用户令牌)。

当我们尝试获取第二级注释(即其他注释下面的注释)时,似乎总是发生速率限制错误#4。当我们尝试从评论(甚至是一级评论)中获得反应时,偶尔也会发生这种情况。

同样,这完全是经验证据。但是,最好能听到其他人是否可以重复此发现。

答案 4 :(得分:0)

这对我有用。如果我每3650秒将脚本限制为200个API调用,它将运行完毕。这些数字似乎接近我所能做到的。如果逐渐增加API调用次数或逐渐减少秒数,则脚本会间歇性地失败。如果我更改过多,脚本将始终失败。

这可能意味着某些脚本将在一天内无法完成。幸运的是,我的工作在几个小时内就完成了。

相关问题