首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在电报API中转发消息

如何在电报API中转发消息
EN

Stack Overflow用户
提问于 2017-04-20 14:53:50
回答 1查看 12.9K关注 0票数 3

电报API中有两种转发消息的方法:

  • messages.forwardMessage
  • messages.forwardMessages

我希望使用forwardMessage方法将消息从channelgroupuser转发给另一个消息。这种方法的定义是:

代码语言:javascript
复制
messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;

如您所见,此方法有3个输入参数:

  • peer,它表示我们转发消息的channelgroupuser。(目的地)
  • id,那是message_id
  • 具有内部用途的random_id

正如我们所知,message_id是聊天中唯一的数字。因此,message_idgroup中是指与其他组中相同的message_id不同的消息。

因此,主要的问题是我们如何确定转发的源peer?因为源peer不是由message_id确定的。

我的问题是关于电报API中的方法,而不是电报Bot。

EN

回答 1

Stack Overflow用户

发布于 2017-06-15 02:51:17

ForwardMessageRequest似乎有一个问题,它没有指定源聊天。显然,message_id并不是唯一的,通过我的测试,我注意到只需要指定message_id就会转发错误的消息。我注意到message_id并不是独一无二的。

但是ForwardMessagesRequest并不存在这个问题。下面是如何使用ForwardMessagesRequest版本的示例。

转发示例:

下面是我用于测试的代码(我将Telethon用于python,但这并不重要,因为它直接调用了电报API):

代码语言:javascript
复制
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))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43523018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档