【问题标题】:Telegram bot API: get message id to forward itTelegram bot API:获取消息 ID 以转发它
【发布时间】:2016-01-31 20:14:46
【问题描述】:

所以,我需要我的机器人来转发聊天消息。但为了做到这一点,我需要获取我想要转发的消息的 id(这是一条旧消息)。如何获取该消息的 ID 以便发送?

这是我正在使用的代码

@bot.message_handler(func=lambda m: True)
def reply_ids(message):
    cid = message.chat.id
    bot.reply_to(message, "The message id is: " + str(message.message_id) + " This chat ID is: " + str(cid))

【问题讨论】:

  • 您是如何获得您要转发的消息的? (它的来源是什么?)
  • @DeanFenster 来自我所在的一个小组
  • 通过什么API?我很难理解你为什么没有得到带有实际消息的消息 ID...
  • @DeanFenster 我正在使用github.com/eternnoir/pyTelegramBotAPI
  • 您错误地标记了这个问题。 python-telegram-bot 引用另一个api

标签: python telegram telegram-bot python-telegram-bot


【解决方案1】:

更新:现在是update.message.message_id

【讨论】:

    【解决方案2】:

    最近我一直在处理来自内联按钮的回调查询。我注意到的一件事是,为了回复带有按钮的确切消息,Telegram 需要知道 message.chat_id 和 message.message_id。你可以尝试两者。这更像是一个评论而不是一个答案,但我没有足够的声誉来发表评论。

    【讨论】:

      【解决方案3】:

      收到消息时,id 将在message.message_id 中,如文档中的here

      【讨论】:

      • 问题是,它是来自看起来像机器人对话的消息 ID。很难解释。但是你可以看一下,试着和我的机器人聊天:@jmml_test_bot 它会给出你的消息的消息 ID 和聊天的 ID。如果它是对话中的第一条消息,人们会期望消息 ID 为 1(或 0)。但是,它将是一个更大的数字,其他数字是机器人收到的旧消息。
      • 然后,尝试在群聊中获取消息的 ID 也会这样做,它不会显示正确的 ID...
      • 为什么ID会是0或者1? Telegram 将所有消息存储在其服务器上,并且每个消息都应该有一个唯一的 ID。
      • 哦,所以它应该是一个更大的随机数。好吧,试着和我的机器人说话。它不会给你那个。
      • 所以它似乎是每个聊天的运行索引。但是为什么这会使其无效呢?
      猜你喜欢
      • 2017-11-28
      • 2022-08-18
      • 2021-06-07
      • 2017-02-25
      • 2016-05-09
      • 2016-02-23
      • 2022-12-21
      • 2021-08-08
      • 2020-03-26
      相关资源
      最近更新 更多