javascript - DiscordJS - 获取所有 DM 频道
问题描述
我想检索机器人已发送的所有 dm 频道和这些频道中的所有消息。
这应该检索机器人可以访问的所有频道。但它似乎只检索公会频道。
client.channels.cache.entries()
Discord Docs说我必须明确获取 DM,但我不知道该怎么做......
.channels 客户端当前正在处理的所有通道,由它们的 ID 映射 - 只要不使用分片,这将是机器人所属的每个公会中的每个通道。请注意,DM 通道最初不会被缓存,因此在没有明确获取或使用的情况下不会出现在 Manager 中。
类型:频道管理器
解决方案
这是不可能的,因为 dm 永远不会在 api 的有效负载中。
要获取 dm 的消息,您需要知道对 bot 开放 dm 的用户 ID。从那时起,您可以从 User 对象打开一个 dm,然后获取所有消息。
之后,通道缓存将包含机器人在线会话的 dm。
推荐阅读
- javascript - 无法在 Firefox 上使用 onclick()
- c# - 对于c#语言如何使代码断开连接?
- android - 如何停止在android中弹出通知
- excel - 当文件名不同时,将数据从一个工作簿复制到另一个工作簿
- oracle - 动态更新引用其他表的字段?
- electron - 电子应用Mac应用商店图标问题->“缺少必需的图标”
- javascript - 单击时更改 Bootstrap 的折叠按钮的值
- node.js - 我有一个查询要从我的数据库中获取 2 件事,但它得到了一切。有人知道这里有什么问题吗?
- android - 添加对外部库的 androidx 支持
- c# - 当服务返回数据并更新模型对象时使用值更新按钮文本