Discord机器人启动报CLIENT_MISSING_INTENTS错误,已开intents仍未解决
问题原因
这个报错的核心是discord.js v13及以上版本强制要求在代码中初始化客户端时明确声明所需的网关意图,和你是否在Discord开发者后台开启权限没有直接关系,后台开权限是第二步要求,首先要保证代码里传入了合法的intents参数。
解决方案
- 首先确认你使用的discord.js版本,不同版本的意图引入方式不同
- 调整代码中Client实例的初始化逻辑,传入对应intents参数
示例代码(discord.js v14 版本,目前主流版本)
// 顶部导入依赖时引入IntentsBitField const { Client, IntentsBitField } = require('discord.js'); // 初始化Client时传入intents配置,按需添加你需要的功能对应的意图 const client = new Client({ intents: [ IntentsBitField.Flags.Guilds, // 基础服务器相关功能必选 IntentsBitField.Flags.GuildMessages, // 接收服务器消息必选 IntentsBitField.Flags.MessageContent, // 读取消息内容必选,需同时在后台开启特权意图 IntentsBitField.Flags.GuildMembers // 获取服务器成员信息必选,需同时在后台开启特权意图 ] });
示例代码(discord.js v13 版本)
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.MESSAGE_CONTENT, Intents.FLAGS.GUILD_MEMBERS ] });
注意事项
- 按需添加意图即可,不需要的功能对应的意图不用额外添加,避免权限冗余
MessageContent、GuildMembers、GuildPresences属于特权意图,代码中声明后仍需确保你在Discord开发者平台的机器人设置页面已经开启了对应开关,否则运行时仍会触发权限错误
内容的提问来源于stack exchange,提问作者Raghuvanshi
相关产品推荐
相关产品推荐

