Telegram API 中有 2 种转发消息的方法:
- messages.forwardMessage
- messages.forwardMessages
我想用forwardMessage
转发消息的方法channel
, group
or user
到另一个。该方法的定义是:
messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
正如你所看到的,这个方法有 3 个输入参数:
-
peer
代表的是channel
, group
or user
我们转发消息的目标。 (目的地)
-
id
那是message_id
.
-
random_id
具有内部用途。
据我们所知message_id
是聊天中的唯一号码。所以一个message_id
in a group
has 指的是与相同内容不同的消息message_id
在其他组中。
所以主要问题是我们如何确定来源peer
的转发?因为源头peer
不是由message_id
.
P.S:我的问题是关于 Telegram API 中的方法,而不是 Telegram Bot API。
ForwardMessageRequest 似乎存在问题,它没有指定源聊天。显然,message_id 不是唯一的,通过我的测试,我注意到仅指定 message_id 就会转发错误的消息。我注意到 message_id 不是唯一的。
但 ForwardMessagesRequest 不存在这个问题。以下是如何使用 ForwardMessagesRequest 版本的示例。
转发示例:
这是我用于测试的代码(我使用 Python 的 Telethon,但这并不重要,因为它直接调用 telegram API):
source_chat = InputPeerChannel(source_chat_id, source_access_hash)
total_count, messages, senders = client.get_message_history(
source_chat, limit=10)
for msg in reversed(messages):
print ("msg:", msg.id, msg)
msg = messages[0]
print ("msg id:", msg.id)
dest_chat = InputPeerChat(dest_chat_id)
result = client.invoke(ForwardMessagesRequest(from_peer=source_chat, id=[msg.id], random_id=[generate_random_long()], to_peer=dest_chat))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)