我正在尝试在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看起来像什么?
答案 0 :(得分:0)
您是机器人。因此,人们与您互动(直接或成组)。当消息发送到您的机器人时,您将收到一个包含消息详细信息(包括chat_id,发件人聊天ID,消息ID和所有其他详细信息)的回调。这样的事情(请参见message->message_id
和message->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反馈给您。