首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读DM历史,如何获取DM通道历史

读DM历史,如何获取DM通道历史
EN

Stack Overflow用户
提问于 2022-03-09 02:07:32
回答 1查看 467关注 0票数 0

我正在使用pycord,并试图让我的不和谐机器人与特定用户一起查看它的dm消息,以确定它是否已经向该用户发送了特定的消息。这个是可能的吗?

我已经找到了很多如何让不和谐的机器人响应"on_message()“的例子,但这不是我想要的。我希望获得以前发送的消息的历史记录(如果没有dm历史记录,则没有)。这个是可能的吗?

另一个用例是:我希望机器人在用户添加消息后编辑发送给DM中的消息。当用户添加一个反应时,我就可以触发bot。

代码语言:javascript
复制
@commands.Cog.listener()
async def on_raw_reaction_add(self, ctx: discord.RawReactionActionEvent):

但是这个函数中的ctx只包含一个channel_id和message_id,所以我需要用channel_id获取DiscordChannel,然后用message_id获取DiscordMesage。

这似乎是pycord缺少的一个特性:

EN

回答 1

Stack Overflow用户

发布于 2022-03-10 00:07:30

好的。所以在读了“医生”之后。我想出了一种你能做到的办法。

ctx : RawReactionActionEvent具有属性user_id。有了这个,您就可以使用user = await self.client.fetch_user(user_id)获取用户。对于user对象,有一个属性dm_channel。这样,它将返回DMChannel。如果没有与用户一起创建dm,则返回None。然后你可以用消息ID获取消息,我想这就是你的意思。如果不是,我也许能找到另一种方式。

https://docs.pycord.dev/en/master/api.html#discord.RawReactionActionEvent

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

https://stackoverflow.com/questions/71403549

复制
相关文章

相似问题

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