discord.js开发Discord机器人报CLIENT_MISSING_INTENTS错误如何解决
问题原因
你使用的discord.js为v13及以上版本,这类版本强制要求初始化客户端时明确声明网关意图,用于控制机器人可接收的事件数据范围,你当前代码初始化Discord.Client时未传入任何意图参数,因此触发CLIENT_MISSING_INTENTS报错。
修复方案
你当前实现的是消息触发回复功能,需要开启服务器基础、服务器消息事件、消息内容读取三类意图,同时注意v14及以上版本已废弃message事件,需替换为messageCreate事件,修改后的完整代码如下:
// 若为discord.js v13版本,将IntentsBitField替换为Intents即可 const { Client, IntentsBitField } = require('discord.js'); const client = new Client({ intents: [ IntentsBitField.Flags.Guilds, IntentsBitField.Flags.GuildMessages, IntentsBitField.Flags.MessageContent ] }) client.on("ready", () => { console.log(`Logged in as ${client.user.tag}!`) }) client.on("messageCreate", msg => { if (msg.content === "ping") { msg.reply("pong"); } }) client.login(process.env.TOKEN)
额外注意事项
- 代码修改完成后,还需要进入Discord开发者后台的对应机器人设置页,找到「Privileged Gateway Intents」分区,开启
Message Content Intent权限,否则机器人无法正常读取消息内容。 - 如果你的机器人还需要实现其他功能(比如接收成员加入事件、监听语音状态变更等),按需添加对应意图即可。
内容的提问来源于stack exchange,提问作者Lam Nguyen
相关产品推荐
相关产品推荐

