运行node .或node main.js出现Discord.js CLIENT_MISSING_INTENTS错误怎么办
错误解决方案
报错原因
当前你安装的discord.js为v13及以上版本,该版本起Discord官方强制要求开发者初始化客户端时必须明确声明机器人需要使用的网关意图,旧版本v12及更早的教程中无参数初始化Client的写法已经不兼容新版本。
修复方法
修改代码中Client的初始化逻辑,传入你需要用到的意图配置即可,仅基础上线功能的修复后完整代码如下:
const { Client, IntentsBitField } = require('discord.js'); const client = new Client({ // 按你的功能需求添加对应意图 intents: [ IntentsBitField.Flags.Guilds, // 基础服务器访问意图,必填 // 如需监听服务器消息可追加下面两个配置 // IntentsBitField.Flags.GuildMessages, // IntentsBitField.Flags.MessageContent ] }); client.once('ready', () => { console.log('Kilobot is online') }); client.login('你的机器人token');
额外注意事项
如果你需要用到消息内容读取、成员进出监听这类敏感权限的功能,除了代码中添加对应意图外,还需要进入Discord开发者后台的对应机器人设置页,找到「Bot」分类下的「Privileged Gateway Intents」板块,打开对应功能的开关,否则运行时仍会触发权限报错。
如果想继续沿用旧教程的代码写法,也可以执行npm install discord.js@12命令安装v12版本的discord.js,不需要修改代码即可正常运行。
内容的提问来源于stack exchange,提问作者AyakoYako
相关产品推荐
相关产品推荐

