Discord bot启动报CLIENT_MISSING_INTENTS错误如何解决
错误原因
这是discord.js v13及更高版本的强制规则,Bot客户端初始化时必须显式声明所需的网关意图,否则无法完成启动。
解决步骤
- 根据报错堆栈定位到Client初始化代码位置:
src/Client.js第20行、app.js第17行。 - 按你使用的discord.js版本对应修改初始化代码:
若使用discord.js v14版本
const { Client, IntentsBitField } = require('discord.js'); // 按Bot实际功能选择需要的意图,以下为常用选项 const requiredIntents = [ IntentsBitField.Flags.Guilds, // 服务器基础访问权限 IntentsBitField.Flags.GuildMessages, // 服务器消息访问权限 IntentsBitField.Flags.MessageContent, // 消息内容读取权限 IntentsBitField.Flags.GuildMembers, // 服务器成员信息访问权限 IntentsBitField.Flags.GuildPresences // 成员在线状态访问权限 ]; // 初始化时传入intents参数 const client = new Client({ intents: requiredIntents });
若使用discord.js v13版本
const { Client, Intents } = require('discord.js'); const requiredIntents = [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.MESSAGE_CONTENT, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_PRESENCES ]; const client = new Client({ intents: requiredIntents });
注意事项
MessageContent属于特权意图,需要前往Discord开发者后台的对应Bot设置页手动开启后才能使用,若你的Bot不需要读取消息内容可移除该选项。- 仅添加Bot功能需要用到的意图即可,无需添加多余权限。
内容的提问来源于stack exchange,提问作者Mythic
相关产品推荐
相关产品推荐

