discord.js启动报CLIENT_MISSING_INTENTS错误如何配置Intents
报错修复方案
错误原因
discord.js v13及以上版本强制要求初始化Client时显式声明需要使用的网关意图(Intents),未配置合法Intents就会抛出CLIENT_MISSING_INTENTS类型错误。
具体修改步骤
替换Client初始化代码
你原有代码中client = new Discord.Client()未传入Intents配置,直接替换为以下写法即可。你的代码功能只需要2个基础Intents,不需要加你推测的GUILD_PRESENCE——这个意图是用来监听成员在线状态、自定义活动的,你当前代码没有相关逻辑,加了反而需要额外申请特权权限:// 保留你原有require写法的话,初始化部分改成这样 const Discord = require('discord.js'), client = new Discord.Client({ intents: [ Discord.Intents.FLAGS.GUILDS, // 基础服务器访问权限,必备 Discord.Intents.FLAGS.GUILD_MESSAGES // 接收服务器消息,用于响应boost命令 ] }), // 后面的nodeHtmlToImage、config等其他初始化代码保持不变注意:如果后续你要加私信响应功能,再额外加
Discord.Intents.FLAGS.DIRECT_MESSAGES即可,当前你代码里已经过滤了DM渠道消息,不需要加。(可选)开发者后台配置
如果你后续要加成员列表、在线状态相关功能,需要去Discord开发者平台对应机器人的Bot设置页,下拉到「Privileged Gateway Intents」板块打开对应意图开关,当前代码功能不需要修改这部分配置。
额外兼容提示
你代码里用的client.on('message')事件在新版discord.js中已经更名为messageCreate,如果改完Intents还是收不到消息,把事件名替换成messageCreate即可。
内容的提问来源于stack exchange,提问作者Shadow WLX
相关产品推荐
相关产品推荐

