Discord 特权意图:在线状态、成员与消息内容
特权意图是三个会暴露敏感数据的网关意图:在线状态更新、服务器成员列表和消息内容。 机器人必须在开发者门户中分别开启每一项,而一旦超过 100 个服务器,它还必须经过 Discord 的验证和批准才能继续使用它们。
三种意图
- 在线状态:成员是在线、闲置还是离线,以及他们的活动状态。
- 服务器成员:成员加入和离开事件以及完整的成员列表。欢迎消息、验证和自动角色需要它。
- 消息内容:消息的实际文本、embed 和附件。读取前缀命令以及任何扫描文本的功能都需要它。
没有消息内容,机器人仍然会收到提及它的消息、私信和它自己的消息,以及斜杠命令等交互。这就是为什么现代机器人更依赖斜杠命令。
批准如何运作
对于服务器少于 100 个的机器人,你只需在开发者门户的机器人页面中勾选开关即可。当机器人达到 100 个服务器时,Discord 要求对该机器人进行验证,此时特权意图还需要附带说明理由的批准。没有批准,机器人就会失去它们。Discord 会逐案决定,因此清楚说明需要这些数据的功能会有所帮助。
如果机器人在连接时请求了一个未开启的特权意图,Discord 会以错误 4014 关闭连接。这是机器人在设置后立即离线的常见原因。参见4014 错误详解。
服务器所有者为什么关心
这些意图是机器人接触成员数据的部分。消息内容尤其值得考虑:一个读取消息的机器人可以过滤垃圾信息和链接,但也能看到它有权访问的地方所说的一切。你可以通过在私密区域拒绝机器人的"查看频道"权限来加以限制。
这也会影响可靠性。失去已批准意图的机器人可能会悄悄地停止欢迎成员或执行规则。
Noxyr 与特权意图
对于使用你自己应用的 Noxyr 自定义机器人,设置需要在开发者门户中开启"服务器成员意图"和"消息内容意图"。依赖它们的 Noxyr 功能包括欢迎消息、验证和反垃圾。请阅读特权网关意图完整指南,并在网关意图中了解更广泛的概念。
安装机器人之前先检查
询问机器人使用哪些特权意图,以及用于什么。音乐机器人很少需要在线状态数据,投票机器人也很少需要读取所有消息。如果回答含糊,请换一个机器人。
常见问题
哪些意图是特权意图?
在线状态、服务器成员和消息内容。
为什么我的机器人以错误 4014 断开连接?
它请求了一个未在开发者门户中开启的特权意图。开启它并重启机器人。
Noxyr 自定义机器人需要哪些意图?
你自己的应用必须开启"服务器成员意图"和"消息内容意图"。