【问题标题】:Offset parameter ignored in getUpdates Telegram bot APIgetUpdates 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:很高兴提供额外的信息。

谢谢

【问题讨论】:

    标签: api bots telegram


    【解决方案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 过去时返回。换句话说,它是长民意调查。

      【讨论】:

        猜你喜欢
        • 2015-10-22
        • 2021-11-26
        • 2023-03-28
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        相关资源
        最近更新 更多