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

discord.js报错CLIENT_MISSING_INTENTS 添加意图时提示client已声明如何解决

discord.js CLIENT_MISSING_INTENTS 错误修复方案

错误原因

你遇到的问题核心来源有三点:

  • discord.js v13及以上版本强制要求初始化Client实例时必须传入intents参数,用于指定机器人需要访问的网关事件权限,你原代码中new Discord.Client()未传任何配置,所以触发缺少intents的报错。
  • 你定义intents变量的时机在Client初始化之后,完全没有生效,同时你尝试修改代码时重复声明了client变量,才会出现「client已声明」的报错。
  • 你没有从discord.js中导入Intents类,直接写new Intents()会触发未定义报错。

修复后的完整代码

const Discord = require('discord.js')

// 先定义intents,32767是全权限位域,代表开启所有官方支持的intents
const allIntents = new Discord.Intents(32767);
// 初始化Client时传入intents配置,不要重复声明client变量
const client = new Discord.Client({
  intents: allIntents
});

client.on('ready', () => {
    console.log("Bot is online!")
});

// 补充你的机器人令牌即可启动
client.login('你的机器人令牌')

按需指定intents(更安全的写法)

如果不需要全权限,你可以按需指定需要的intents,示例如下:

const client = new Discord.Client({
  intents: [
    Discord.Intents.FLAGS.Guilds, // 服务器相关权限
    Discord.Intents.FLAGS.GuildMessages, // 服务器消息相关权限
    Discord.Intents.FLAGS.MessageContent // 读取消息内容权限
  ]
})

v14版本适配

如果你使用的是discord.js v14版本,Intents类更名为IntentBits,写法调整为:

const { Client, IntentBits } = require('discord.js')
const client = new Client({
  intents: [
    IntentBits.Flags.Guilds,
    IntentBits.Flags.GuildMessages,
    IntentBits.Flags.MessageContent
  ]
})

额外注意事项

如果需要使用MessageContent等特权intent,你需要先进入Discord开发者后台的机器人管理页面,在「Privileged Gateway Intents」板块下手动开启对应权限开关,否则代码中配置了也无法正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:03