ESP32上Micropython Telegram bot仅拉取首条消息如何获取未读消息
问题解答
核心参数逻辑
Telegram Bot API 要求offset参数传入已处理的最后一条消息对应的update_id值 + 1,即可跳过所有已处理消息,仅获取未读更新:
- 初始值设为
0时,会从最早的未处理消息开始返回 - 每完成一条消息的处理后,将offset更新为该消息的
update_id + 1,下次请求就只会返回更新的未读消息
针对当前使用场景的说明
你使用的listen()函数已经内置了自动推进self.message_offset的逻辑,不需要手动修改read_messages中的代码,按需调整初始值即可:
- 若需要程序启动后只接收新消息,忽略历史未读消息:将
self.message_offset初始值设为-1即可,首次请求只会返回最新的一条消息,之后listen()会自动推进offset - 若需要程序启动后处理所有历史未读消息:保留初始值
0即可,listen()会自动逐条处理并更新offset值
你贴出的read_messages函数本身仅负责拉取消息,没有修改offset的逻辑,offset更新逻辑完全由listen()实现,不要修改该函数内的query_updates配置。
内容的提问来源于stack exchange,提问作者none none
相关产品推荐
相关产品推荐

