getUpdates Telegram bot API 中忽略的偏移量参数
Posted
技术标签:
【中文标题】getUpdates Telegram bot API 中忽略的偏移量参数【英文标题】:Offset parameter ignored in getUpdates Telegram bot API 【发布时间】:2017-12-17 12:07:22 【问题描述】:我正在使用here 所述的电报机器人 Web API 制作电报机器人
我正在使用长轮询通过getUpdates 方法为我的机器人收集更新。为了避免两次处理相同的消息,我使用了方法的偏移参数。
import requests
url = "https://api.telegram.org/botTOKEN/getUpdates"
offsetParam = 'offset' : 999
response = requests.get(url,params=offsetParam)
运行此代码时,人们会期望每次更新的偏移量都大于 999。但是我仍然得到小于 999 的 message_id 作为代码中最后一个变量的一部分(所有这些,作为事实)。
谁能帮我弄清楚为什么在这个调用之后响应偏移量没有增加?
P.S:很高兴提供额外的信息。
谢谢
【问题讨论】:
【参考方案1】:偏移量是消息ID,你应该在result.message_id
中获取,而不是从0
开始。
【讨论】:
好的,现在我知道偏移量实际上是指message_id,谢谢。但是,问题仍然存在。如果我仍然给出 999 的偏移量,我仍然会收到所有以前的 message_id 小于 999 的消息。我将编辑问题以显示这一点 @DanielHernandez 你应该设置为message_id+999
,而不是999
。【参考方案2】:
答案很简单。偏移量是指 update_id 值。
其他答案声称 message_id 是偏移量,在撰写本文时并非如此。
【讨论】:
【参考方案3】:使用cURL
解决了这个问题。这不是message_id
;这是update_id
。如果offset
大于update_id
,则cURL
仅在有新更新可用或timeout
过去时返回。换句话说,它是长民意调查。
【讨论】:
以上是关于getUpdates Telegram bot API 中忽略的偏移量参数的主要内容,如果未能解决你的问题,请参考以下文章
我的 Telegram Bot 无法读取另一个 Telegram Bot 发送的消息
在函数内获取变量更新(Telegram bot、Python3、python-telegram-bot 库、多处理)
node-telegram-bot-api 中的错误未找到模块:无法解析 node-telegram-bot-api 中的“fs”、“net”、“tls”