Discord机器人启动报CLIENT_MISSING_INTENTS错误无法上线如何解决
错误原因
你遇到的CLIENT_MISSING_INTENTS报错是因为discord.js v13及以上版本强制要求在初始化Client实例时声明网关意图(Intents),意图用于指定机器人需要接收哪些类别的事件数据,未配置会直接阻止客户端启动。
解决步骤
1. 修改index.js代码,补充Intents配置
根据你安装的discord.js版本选择对应写法:
如果你用的是discord.js v14(当前主流版本)
完整修改后的代码如下:
const { Client, GatewayIntentBits } = require('discord.js'); const bot = new Client({ intents: [ GatewayIntentBits.Guilds, // 基础必备权限,用于获取服务器相关信息 GatewayIntentBits.GuildMessages, // 允许接收服务器内的消息事件 GatewayIntentBits.MessageContent, // 允许读取消息内容,做消息响应类功能必须 // 后续需要其他功能可以按需补充对应的Intent ] }); const token = '你的机器人token'; const PREFIX = ''; bot.on('ready', () => { console.log('Online!'); }); bot.login(token);
如果你用的是discord.js v13
只需要调整引入和Intent的写法即可:
const { Client, Intents } = require('discord.js'); const bot = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.MESSAGE_CONTENT, ] }); // 其余代码保持不变
2. 开启开发者后台特权意图权限
Message Content Intent属于特权意图,需要手动在Discord开发者后台开启:
- 打开Discord Developer Portal,进入你的机器人应用页面
- 切换到左侧「Bot」标签,下拉找到Privileged Gateway Intents区域
- 开启
Message Content Intent的开关,如有成员管理相关需求可以同步开启Server Members Intent
3. 重新启动机器人
保存代码后在终端重新运行node index.js即可正常启动,终端会打印Online!提示,机器人状态变为在线。
内容的提问来源于stack exchange,提问作者Angel R.
相关产品推荐
相关产品推荐

