电报API中有两种转发消息的方法:
我希望使用forwardMessage方法将消息从channel、group或user转发给另一个消息。这种方法的定义是:
messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;如您所见,此方法有3个输入参数:
peer,它表示我们转发消息的channel、group或user。(目的地)id,那是message_id。random_id。正如我们所知,message_id是聊天中唯一的数字。因此,message_id在group中是指与其他组中相同的message_id不同的消息。
因此,主要的问题是我们如何确定转发的源peer?因为源peer不是由message_id确定的。
我的问题是关于电报API中的方法,而不是电报Bot。
发布于 2017-06-15 02:51:17
ForwardMessageRequest似乎有一个问题,它没有指定源聊天。显然,message_id并不是唯一的,通过我的测试,我注意到只需要指定message_id就会转发错误的消息。我注意到message_id并不是独一无二的。
但是ForwardMessagesRequest并不存在这个问题。下面是如何使用ForwardMessagesRequest版本的示例。
转发示例:
下面是我用于测试的代码(我将Telethon用于python,但这并不重要,因为它直接调用了电报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))https://stackoverflow.com/questions/43523018
复制相似问题