Telegram bot api:错误代码 429,错误:请求太多:稍后重试

Posted

技术标签:

【中文标题】Telegram bot api:错误代码 429,错误:请求太多:稍后重试【英文标题】:Telegram bot api: Error code 429, Error: Too many requests: retry later 【发布时间】:2015-11-02 01:02:04 【问题描述】:

我们有一个 Telegram 机器人。它拥有大约 120 万订阅者。

现在我们在向这些数量的订阅者发送消息时遇到了问题。

Telegram bot API 不提供任何批量消息功能,我们必须向 Telegram 发送单独的请求。问题是,在几千条消息之后,Telegram 开始响应错误 429:请求过多,并且暂时不接受任何请求。

我们如何有效地向订阅者发送消息?

【问题讨论】:

120 万订阅者?!机器人名称? :) 正如@user3313781 回答所指出的,Telegram 机器人服务器目前使用这种“反垃圾邮件”限制启动。您是否解决了在更大的时间内发送消息的问题?例如,每最多 50 毫秒发送一次消息? 【参考方案1】:

您应该简单地实施一个全局速率限制器,以确保没有单个用户每秒收到超过固定数量的消息。为了安全起见,请将您的限制器设置为低于 30,甚至可能设置为每秒 5 条消息。

对于单个用户来说,任何高于每秒 5 条消息的消息都会很快成为烦恼。

干杯。

【讨论】:

如果我也收到此错误可能是什么原因,但前提是我尝试通过电报发送联系人。我正在使用 Telegraf 框架。我现在没有订阅者。只是学习框架。什么可以使我错过的循环?【参考方案2】:

我是 Ramona Bot 的所有者。 向用户发送消息是有限制的。正如他们所说,每秒约 30 条消息。否则你会得到错误 429。

【讨论】:

您是否测试过收到错误 429 后会发生什么?您是否解决了在适当的时间(在 429 拒绝之后)发送消息的问题,最多每 50 毫秒发送一次消息?您是否使用过并输出消息队列?谢谢【参考方案3】:

基于Telegram Bots FAQ发送消息,你应该考虑这个:

如果您要向多个用户发送批量通知,API 将不允许每秒超过 30 条左右的消息。考虑以 8 到 12 小时的间隔分散通知以获得最佳效果。

【讨论】:

【参考方案4】:

我在消息方面遇到了类似的问题,其间的停顿是 0.5 秒(这比每秒 30 条消息要少得多!)。该问题仅与消息有关,我试图更改其内容。因此,当您尝试使用“edit_message_text”或“edit_message_media”时,请在消息之间多暂停一下。

【讨论】:

以上是关于Telegram bot api:错误代码 429,错误:请求太多:稍后重试的主要内容,如果未能解决你的问题,请参考以下文章

Telegram Bot API:缺少语音消息音频频谱图。一个错误?

如何使用 Telegram Bot API 发送表情符号?

Telegram API vs Bot API [关闭]

如何收听Telegram Bot错误? (Google App Script + Webhooks)

如何使用 Telegram Bot API 获取 Telegram 频道用户列表

使用 Express、Socket.io 和 Node-Telegram-Bot-Api 结束 Mocha 测试