You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么discord.js机器人复用旧代码后报CLIENT_MISSING_INTENTS错误?

问题成因

该错误和const Discord = require('discord.js')的导入逻辑无关,完全由discord.js的版本差异导致:

  • 可正常运行的旧项目使用的是discord.js v12及更早版本,对应版本适配的Discord API未强制要求声明网关意图,初始化客户端无需传递额外参数
  • 新建项目安装的是discord.js v13及以上的正式版本,该版本段适配的Discord API要求开发者必须明确指定机器人需要接收的事件类型(即网关意图),未声明就初始化客户端会直接抛出CLIENT_MISSING_INTENTS错误
解决方法

1. 修改代码初始化配置

调整new Discord.Client()的代码,传入当前功能需要的意图参数。以你当前用到的消息监听、命令响应功能为例,需要配置服务器、服务器消息、消息内容三个核心意图,当前主流稳定版discord.js v14的修改示例如下:

const client = new Discord.Client({
  intents: [
    Discord.GatewayIntentBits.Guilds,
    Discord.GatewayIntentBits.GuildMessages,
    Discord.GatewayIntentBits.MessageContent
  ]
});

另外注意discord.js v13及以上版本已经废弃了message事件,需要把监听代码从client.on("message", async (message) => {修改为client.on("messageCreate", async (message) => {,否则命令不会被触发。

2. 开启开发者后台特权意图

MessageContent属于Discord规定的特权网关意图,需要手动在后台开启权限:

  • 进入Discord开发者面板,找到当前机器人对应的应用
  • 切换到「Bot」选项卡,向下滑动找到「Privileged Gateway Intents」板块
  • 打开「Message Content Intent」的开关,保存设置即可。

内容的提问来源于stack exchange,提问作者nomadsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:27:03