Discord现在正在执行特权意图
什么是意图?
在处理大量数据时,尤其是在规模上,维护状态应用程序可能会很困难。网关意图是一个系统,可以帮助您降低计算负担。
网关意图允许您挑选并选择要“订阅”的事件,以便您不必使用未使用的事件来占用存储空间。此功能由Discord在2020年引入,并在discord.js v12中得到支持。
什么是特权意图?
由于数据的敏感性质,某些意图被定义为“特权”。这些意图包括:
GUILD_PRESENCES
GUILD_MEMBERS
截至2020年10月27日,默认情况下已关闭这些意图。
由此可能导致的一些问题
GUILD_PRESENCES
GUILD_MEMBERS
如何启用意图?
通过Discord开发者门户:
首先,您必须从Discord开发人员网站手动启用意图。前往 应用程序,选择您的应用程序,并在侧边栏上找到“机器人”选项卡。然后您可以向下滚动,直到看到以下内容:
![intents](https://istack.dev59.com/TkVHN.webp)
如屏幕截图所示,如果您的机器人在超过75个服务器中,则需要进行验证。
如果您的机器人已经通过验证:
一旦您的机器人通过验证,您将无法在开发者门户手动翻转意图开关。要请求为已验证的机器人获得额外特权网关意图的白名单访问权限,请发送支持团队一个票证
here!请确保包括您的机器人ID,您正在请求的意图,所请求意图用例的基本描述以及该用例的屏幕截图或视频(或代码片段,如果不是用户界面)。
通过discord.js模块:
一旦您勾选了任一/两个意图,您只需通过discord.js启用它们即可。
discord.js意图指南 全面解释了如何执行此操作,但我会在这里简述一下。
如果您想要每个意图,则无需执行以下步骤。 Discord默认启用所有意图(除了这两个,显然)。只要您在开发者门户中勾选了这两个意图,如果您不关心阻止其他意图,您可以在此处停止。如果您关心,请记住,意图仅受discord.js v12+支持,因此您可能需要升级。
其中之一
ClientOptions
(
ClientOptions
是在创建客户端时传递的潜在选项的typedef)是
ws
(另一个潜在websocket选项的typedef)。在那里,您将找到
intents
属性。
intents
接受
IntentsResolvable
,它可以是意图的字符串或字符串数组(例如
'GUILD_PRESENCES'
所有可用意图),位域(对应于意图的数字),
Intents
类的实例。
示例:
const client = new Discord.Client({ ws: { intents: 'GUILD_PRESENCES' }});
const client = new Discord.Client({ ws: { intents: ['GUILD_PRESENCES', 'GUILD_MEMBERS'] }});
const client = new Discord.Client({ ws: { intents: 32509 }));
const client = new Discord.Client({ ws: { intents: Discord.Intents.PRIVILEDGED }});
const client = new Discord.Client({ ws: { intents: new Discord.Intents(Discord.Intents.ALL) }});
资源:
简述
要解决这个问题,请前往:
Discord开发者门户 > 应用程序 > 您的应用程序 > 机器人 > 检查两个/任一意图(如上图所示)