Ash*_*ian 3 python-telegram-bot telegram-bot
我在尝试向特定电报频道发送消息时遇到以下错误:
TimedOut: Timed out
The read operation timed out
Run Code Online (Sandbox Code Playgroud)
我从 python-telegram-bot 使用的方法是send_message。
尽管我的机器人收到此错误,但它仍然将消息发送到通道,并且因为我没有捕获该异常,消息中的所有数据都丢失了,但我确实需要在特定时间段后从该通道中删除我的消息。
即使超时,机器人仍发送消息,这可以吗?如何防止这种情况再次发生或在发送后将此类消息从频道中删除?
超时错误意味着 TG 没有send_message足够快地发送对您的请求的响应。这并不一定意味着请求未被处理 - 这就是消息仍可能被发送的原因。但是,如果没有 TG 的响应,您就没有结果消息的消息 ID,并且很难甚至不可能删除它。
您可以尝试增加PTB等待TG响应的时间。这可以通过不同的方式完成:
timeout参数为send_messageDefaults.timeout您使用 PTBDefaults设置request_kwargs您传递给的指定它Updater您可能想看看这个有关网络的wiki 页面。
免责声明:我目前是python-telegram-bot
经过几个小时的阅读,并将 timeout=30 传递给context.bot.send_audio并得到一个错误,unknown parameter即使send_audio的文档明确指出它需要一个timeout参数,我发现您可以通过在构建时将超时传递给应用程序来解决此问题它:
application = ApplicationBuilder()
.token(bot_data["token"])
.read_timeout(30)
.write_timeout(30)
.build()
Run Code Online (Sandbox Code Playgroud)
这修复了我的机器人。希望这也对您有帮助。
| 归档时间: |
|
| 查看次数: |
9332 次 |
| 最近记录: |