首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Telethon中使用GetRepliesRequest调用

如何在Telethon中使用GetRepliesRequest调用
EN

Stack Overflow用户
提问于 2022-05-26 18:12:46
回答 1查看 297关注 0票数 2

电报api中有API方法messages.getReplies,在Telethon中也有相同的API方法functions.messages.GetRepliesRequest。但是,此方法没有将预期的答复/注释返回给帖子。相反,它返回多条消息,包括对请求的message_id的答复和其他消息,这些消息甚至不是对请求的message_id的答复。

代码语言:javascript
复制
for conv in client.iter_messages(channel.id):
    if conv.reply_to:
       # get parent message this message reply to
       original_message = conv.get_reply_message()  
       try:
           #iterate all the replies for the parent message
           for reply in client.iter_messages(channel.id,
                                          reply_to=original_message.id):
               print('\tReply message  -> ', reply.to_dict())
       except telethon.errors.rpcerrorlist.MsgIdInvalidError:
             print('exception ***************')

在这里,它在参数message.id中返回对输入message.id的答复,包括不是对输入message.id的答复的消息。

(我检查了方法调用(内部for循环)的响应,它们的reply_to_msg_id与我请求的结果不同)。

我不明白这些答复的结果是什么。

此外,电报API文档是不好的形式,通过实例和解释。

  • 在电报中,什么以及如何将消息视为reply
  • 电报是如何决定消息的,是回复还是普通消息?
  • 如果一条消息是回复,那么对哪条消息这是一个回复?
EN

回答 1

Stack Overflow用户

发布于 2022-09-20 12:08:32

给定一个已启用注释的广播频道(假设频道的用户名为username),以及消息ID为1001的频道帖子开始讨论的帖子(注释),下面的代码将在username频道中打印post 1001的所有注释

代码语言:javascript
复制
async for m in client.iter_messages('username', reply_to=1001):
    print(m.text)

这相当于点击电报桌面上的“评论”按钮。不幸的是,我无法复制你在这里提到的内容:

但是,此方法没有将预期的答复/注释返回给帖子。相反,它返回多条消息,包括对请求的message_id的答复和其他消息,这些消息甚至不是对请求的message_id的答复。

现在,关于其他问题:

什么样的信息被认为是对电报中的信息的回复?

让我们从另一个角度来看这个问题:send_messagecomment_to

首先,必须使用源消息ID在源广播频道上使用messages.getDiscussionMessage,这将在链接的“讨论巨型频道”中返回相应的“讨论消息”。

现在,可以使用messages.sendMessage在链接的讨论巨组通道中发送消息到的回复--相应的讨论消息。

正如您所看到的,“注释”只是讨论组的相应消息的“回复”。因此名为reply_to,在iter_messages期间。

电报是如何决定消息的,是回复还是普通消息?

在给定的聊天中,消息可以在相同的聊天中(在Telethon,message.reply_to中)回复以前的其他消息。但是,对于通道注释,它们也是以某种方式(只是在不同的聊天中)的答复,因此是参数名。我试着坚持Telegram的命名惯例,通过记录参数来解决困惑,但这可能是错误的选择。

如果一条消息是回复,那么对哪条消息这是一个回复?

这可以通过message.reply_to找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72396273

复制
相关文章

相似问题

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