Node.js开发Discord Bot出现CLIENT_MISSING_INTENTS错误如何解决
问题原因
你遇到的CLIENT_MISSING_INTENTS报错是因为当前使用的discord.js v13及更高版本强制要求在实例化Client对象时传入网关意图配置,意图用于指定Bot需要接收的Discord事件类型,你跟随的旧版教程使用的是v12及更早的discord.js版本,不需要配置该参数,因此出现兼容性问题。
修复方案
修改代码如下即可正常运行:
require("dotenv").config(); // v14及以上版本引入IntentsBitField,v13版本替换为Intents const { Client, IntentsBitField } = require('discord.js'); const bot = new Client({ // 根据Bot实际功能按需配置所需意图 intents: [ IntentsBitField.Flags.Guilds, // 基础服务器相关事件 IntentsBitField.Flags.GuildMessages, // 服务器消息相关事件 IntentsBitField.Flags.MessageContent, // 读取消息内容 ] }); bot.login(process.env.DISCORDJS_BOT_TOKEN);
注意事项
- 若使用discord.js v13版本,将代码中的
IntentsBitField替换为Intents即可,字段配置规则一致 - 如需读取用户发送的消息内容,除了在代码中添加
MessageContent意图,还需要在Discord开发者后台的Bot设置页面,手动开启「Message Content Intent」权限开关 - 可根据Bot的实际功能增减意图列表,无需使用的意图不要开启,减少不必要的事件接收开销
内容的提问来源于stack exchange,提问作者Sv3ks
相关产品推荐
相关产品推荐

