我很难用Messenger平台测试我的应用程序,以便在短时间内向多个用户发送相同的信息。我得到了一个极限错误:(#613) Calls to this api have exceeded the rate limit.
目前,我正在通过向同一个用户(Me)发送几次相同的消息来测试这个问题;在现实世界中,同样的消息当然会发送给几个不同的用户。
另外,我正在使用一个实时应用程序的测试应用程序来执行这些测试。这应该是大幅度改善的现场应用程序吗?
我真的需要一个很好的吞吐量广播消息,所以目前我的设置有几个线程并行发送消息(50),其中一些线程已经达到了这个限制并出错了。此外,我尝试了批处理请求,以提高交付过程的速度,在这一点上,它真的变得难以忍受,成功率不到50%。
我读过关于通用图形API速率限制(https://developers.facebook.com/docs/graph-api/advanced/rate-limiting)的文章,为了发送一条消息,您提供了一个页面访问令牌,所以如果我发送太多消息,我希望我的应用程序属于“页面级别速率限制”类别。但是,在错误响应中没有X页面使用头(顺便说一句,也不存在responses )。
在Messenger平台文档(https://developers.facebook.com/docs/messenger-platform/send-api-reference#limits)中说明了以下内容:
Messenger平台支持对发送API的高速率调用。 但是,您应该架构您的系统,以便随着时间的推移分配任何突如其来的高负载,并且在达到我们的速率限制时能够控制您的吞吐量。 利率限制已到位,以防止恶意行为和不良用户体验。 确保捕获由Send返回的任何错误,包括指示已达到速率限制的错误。
这些也没有什么特别的帮助,因为它们没有明确地引用一般的Graph限制,也没有指定允许执行的请求的不同数量。
有什么我可能遗漏的东西吗?
发布于 2018-04-06 09:46:20
Facebook的最新文件清楚地列出了每秒向SendAPI发出的250个电话。
Send没有固定的速率限制,但是您可以安全地每秒发送250个请求。
更多信息在这里:https://developers.facebook.com/docs/messenger-platform/send-messages#limits
发布于 2017-08-23 12:52:14
在回答你的问题时,“这是否应该在实时应用中得到极大的改善?”
不,在这种情况下,测试应用程序和实时应用程序没有任何区别。我的应用程序已经激活了,我也遇到了这个错误。
我同意我们的情况应该下降到“页面级别的速率限制”,因为我们使用的是页面访问令牌。但是,我没有收到任何与页面级别限制相关的错误。我的应用程序仪表板也没有显示API受到限制。所以这真的是613 -定制级别的节流,这是我的全部,FB只是说“联系你的合伙人经理”
=========================================================================
我已经解决了这个问题。根据FB支持的话,“您由于调用Send太快而受到了速率限制”,我使用setTimeout()将发送API请求的延迟设置为200 to。以每秒10条信息的速度,我不再达到极限。根本没有错误613。我将逐步提高这一比率,以找到理想的情况,因为Facebook不会正式记录它。会让你了解实验的最新情况。
https://stackoverflow.com/questions/44520716
复制相似问题