我使用 python-telegram-bot 开发 Telegram Bot .
尽管使用了 MessageQueue(正如 docs 中提到的那样),但我一直在获取
telegram.error.RetryAfter: Flood control exceeded. Retry in N seconds
当我从客户端(通过非常非常快地按下回复键盘按钮)发送到我的机器人并且它回答我时。
MessageQueue 实际上有效,我可以看到一次发送大量消息时的延迟(使用 for 循环)。我为消息队列尝试了不同的值,但都没有帮助。
无论机器人实际发送的消息数量如何,它似乎都被 Telegram 禁止了。
方法线程(同步或异步)不会改变任何东西。发生这种情况时,如何防止用户泛滥或避免禁止我的机器人?
最佳答案
问题在于 bot 的回复消息大小:大于 512 字节。 Telegram API 将此类消息视为大消息。因此,缩短机器人的回复消息即可解决问题。
您可以在 article 中了解更多信息.
关于超过 Python Telegram Bot 洪水控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51423139/