bot中转发消息方法的问题

时间:2019-11-05 14:18:27

标签: python bots telegram

我正在尝试在python的电报bot API中转发消息。即使在sendMessage中使用了相同的chat_id,它仍显示“错误的请求:chat_id为空”,并且运行正常。

https://api.telegram.org/bot{BOT_TOKEN}/forwardMessage?chat_id={CHAT_ID}&from_chat_id={ID}&message_id={MID}

我的问题是消息ID是什么,我如何找到它? 例如,聊天ID就是这个号码123456789。

消息ID看起来像什么?

2 个答案:

答案 0 :(得分:0)

您是机器人。因此,人们与您互动(直接或成组)。当消息发送到您的机器人时,您将收到一个包含消息详细信息(包括chat_id,发件人聊天ID,消息ID和所有其他详细信息)的回调。这样的事情(请参见message->message_idmessage->from_id):

{ 
   "update_id":1111,
   "message":{ 
      "message_id":111,
      "from":{ 
         "id":1111,
         "is_bot":false,
         "first_name":"...",
         "last_name":"...",
         "username":"...",
      },
      "chat":{ 
         "id":1111,
         "first_name":"...",
         "last_name":"...",
         "username":"...",
         "type":"private"
      },
      "date": 1111,
      "text":"...."
   }
}

因此,您可以存储这些详细信息,并使用它们将消息转发到另一个聊天室。在每个聊天中(唯一的聊天ID),每条消息都有一个聊天ID(通常是一个递增数字),通过这两个标识符,您可以唯一地选择应该从哪个消息中转发聊天。

答案 1 :(得分:0)

根据要访问chat_id的位置,可以使用不同的方法。 如果您想向用户或漫游器发送不知道其chat_id的特定消息,则可以打印该用户的消息并访问chat_id。或者只是将来自该用户的消息转发到@ShowChatIdBot,它会返回相关的chat_id。 实际上,该机器人会从您转发的消息中提取数据,并将该消息中的chat_id反馈给您。