discord.js启动报CLIENT_MISSING_INTENTS错误 机器人无法上线如何解决?
报错原因
你使用的discord.js为v13及以上版本,该版本起Discord API强制要求开发者显式为客户端配置网关意图,用于声明机器人需要接收处理的事件数据类型,你当前代码初始化Client实例时没有传入对应的意图配置,所以触发了CLIENT_MISSING_INTENTS报错。另外该版本已将原有message事件重命名为messageCreate,原事件名已失效。
同时discord.js v13要求Node.js最低版本为16.6.0,你当前使用的14.17.6版本也不符合运行要求。
调整方案
1. 代码修改
修改后的代码如下:
const Discord = require('discord.js'); // 配置所需的网关意图 const bot = new Discord.Client({ intents: [ Discord.Intents.FLAGS.Guilds, // 基础服务器相关事件意图 Discord.Intents.FLAGS.GuildMessages, // 接收服务器消息事件意图 Discord.Intents.FLAGS.MessageContent // 读取消息内容的特权意图 ] }); const token ='MY TOKEN'; // 替换为你自己的机器人token bot.on('ready', () =>{ console.log('This bot is online!'); }) // 使用更名后的消息监听事件 bot.on("messageCreate", msg=>{ if (msg.content === "HELLO"){ msg.reply('HELLO FRIEND!'); } }) bot.login(token);
2. 额外配置
你需要先进入Discord开发者平台的机器人管理页面,在Bot设置分类下找到Privileged Gateway Intents分区,开启Message Content Intent开关,否则机器人无法正常读取消息内容。
3. 环境升级
将你的Node.js版本升级到16.6.0及以上,即可正常运行修改后的代码。
内容的提问来源于stack exchange,提问作者Asuka
相关产品推荐
相关产品推荐

