0

好奇,如果有办法避免在接受 Webhooks 的网络服务器关闭时跳过从 Telegram Bot 发送的消息(由于重新部署、故障或维护)。

当您使用轮询时 - Telegram API 从上次检索到的消息开始发送消息,并且不会跳过任何消息。

但是如何使用 Webhooks?使用轮询还是有一些特殊的机制?

4

2 回答 2

0

我最近遇到了同样的问题,但我只是通过服务器启动时将启动时间保存到变量来解决它,然后使用Telegrambot.Message.date并比较时间是否在服务器启动时间之前发送。

于 2020-09-18T01:43:08.963 回答
0

Telegram 将传入的消息保留 24 小时,如果您的 Webhook 已关闭(即重新部署),则消息将在再次在线后传递。

例如,它在 Heroku 上工作,当你的 Dyno 出现故障时:一旦它启动,Chatbot 将再次向 Telegram 注册,并将接收队列中仍然可用的消息。

有两种相互排斥的方式来接收你的机器人的更新——一方面是 getUpdates 方法,另一方面是 Webhooks。传入的更新存储在服务器上,直到机器人以任何一种方式接收它们,但它们的保存时间不会超过 24 小时。

有关更多详细信息,请参阅电报文档

于 2020-09-19T10:12:35.597 回答