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

开发Discord机器人触发CLIENT_MISSING_INTENTS报错如何解决?

报错触发原因
  • 你使用的是discord.js v13及以上版本,该版本开始Discord官方强制要求开发者在初始化客户端时明确声明网关意图(Intents),用于指定机器人需要接收哪些类别的事件数据,你当前代码初始化Discord.Client时没有传入任何意图配置,直接触发该报错。
  • 同时你的代码还存在两个隐性问题:
    1. v13及以上版本中原message事件已被废弃,需替换为messageCreate事件才能正常监听消息
    2. comms.js文件中comms_list数组的闭合语法错误,多写了半个无关的大括号,运行时会触发语法报错
修复方案

1. 修正bot.js的客户端初始化配置和事件监听

将bot.js中初始化客户端的代码替换为带意图配置的版本,同时修改监听事件名:

const Discord = require('discord.js'); 
// 新增意图配置
const robot = new Discord.Client({
  intents: [
    Discord.GatewayIntentBits.Guilds, // 服务器基础访问权限
    Discord.GatewayIntentBits.GuildMessages, // 接收服务器消息权限
    Discord.GatewayIntentBits.MessageContent, // 读取消息内容权限
  ]
}); 
const comms = require("./comms.js"); 
const fs = require('fs'); 
let config = require('./config.json'); 
let token = config.token;
let prefix = config.prefix; 

robot.on("ready", function() {
  console.log(robot.user.username + " запустился!");
});

// 将原来的message事件替换为messageCreate
robot.on('messageCreate', (msg) => { 
  if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
    var comm = msg.content.trim() + " ";
    var comm_name = comm.slice(0, comm.indexOf(" "));
    var messArr = comm.split(" ");
    for (comm_count in comms.comms) {
      var comm2 = prefix + comms.comms[comm_count].name;
      if (comm2 == comm_name) {
        comms.comms[comm_count].out(robot, msg, messArr);
      }
    }
  }
});

robot.login(token); 

如果你使用的是discord.js v13版本,将GatewayIntentBits替换为Intents.FLAGS即可。

2. 修正comms.js的语法错误

将comms.js中comms_list数组的错误闭合修正,删掉多余的大括号:

// 错误写法
var comms_list = [{
    name: "test",
    out: test,
    about: "Тестовая команда"
  },
  {
    name: "hello",
    out: hello,
    about: "Команда для приветствия!"
  }
}

// 正确写法
var comms_list = [{
    name: "test",
    out: test,
    about: "Тестовая команда"
  },
  {
    name: "hello",
    out: hello,
    about: "Команда для приветствия!"
  }
]

3. 开启Discord开发者后台特权意图

由于MessageContent属于特权意图,你需要登录Discord开发者平台,进入对应机器人的管理页面,找到「Privileged Gateway Intents」板块,开启Message Content Intent开关,否则机器人无法正常读取消息内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:48:04