首页 > 解决方案 > DiscordJS - 获取所有 DM 频道

问题描述

我想检索机器人已发送的所有 dm 频道和这些频道中的所有消息。

这应该检索机器人可以访问的所有频道。但它似乎只检索公会频道。

client.channels.cache.entries()

Discord Docs说我必须明确获取 DM,但我不知道该怎么做......

.channels 客户端当前正在处理的所有通道,由它们的 ID 映射 - 只要不使用分片,这将是机器人所属的每个公会中的每个通道。请注意,DM 通道最初不会被缓存,因此在没有明确获取或使用的情况下不会出现在 Manager 中。

类型:频道管理器

标签: javascriptnode.jsdiscorddiscord.js

解决方案


这是不可能的,因为 dm 永远不会在 api 的有效负载中。

要获取 dm 的消息,您需要知道对 bot 开放 dm 的用户 ID。从那时起,您可以从 User 对象打开一个 dm,然后获取所有消息。

之后,通道缓存将包含机器人在线会话的 dm。


推荐阅读