python-telegram-bot 超时但消息已发送

TimedOut in python-telegram-bot but message is sent

我在尝试向特定电报频道发送消息时遇到以下错误:

TimedOut: Timed out
The read operation timed out

我在 python-telegram-bot 中使用的方法是 send_message

尽管我的机器人遇到了这个错误,但它仍然将消息发送到频道,因为我没有捕获到该异常,消息中的所有数据都丢失了,但我确实需要在特定时间段后从该频道删除我的消息时间。

机器人在超时的情况下发送消息是否正常?怎样才能避免这种情况再次发生,或者在发送后从频道中删除这种消息?

超时错误意味着 TG 没有足够快地对您的 send_message 请求发送响应。这并不一定意味着请求未被处理——这就是消息可能仍被发送的原因。但是,如果没有来自 TG 的回复,您就没有生成的消息的消息 ID,并且很难甚至不可能删除它。

您可以尝试增加PTB等待TG响应的时间。这可以通过不同的方式完成:

  • timeout参数send_message
  • 使用 Defaults.timeout,如果您使用的是 PTB Defaults 设置
  • 通过传递给 Updater
  • request_kwargs 指定它

您可能想在网络上查看此 wiki page


免责声明:我目前是 python-telegram-bot

的维护者