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

在Replit用discord.js创建机器人时遇TypeError [ClientMissingIntents]错误

解决Discord.js的TypeError [ClientMissingIntents]错误

错误原因

Discord.js从v13版本开始,要求创建Client实例时必须显式指定网关意图(Intents),用来限定机器人能接收的事件类型。你的代码中new Discord.Client()没有传入任何intents配置,因此触发该错误。

解决步骤

1. 确定所需的Intents

你的代码需要处理消息事件,至少需要以下两个核心意图:

  • Guilds:基础服务器相关事件权限
  • GuildMessages:服务器内消息事件权限
    另外,Discord.js v14及以上版本默认屏蔽消息内容读取,还需要开启消息内容特权(Message Content Intent),这一步需在Discord开发者后台操作。

2. 修改代码

针对Discord.js v14+版本

const { Client, IntentsBitField } = require('discord.js');
// 声明需要的意图集合
const intents = new IntentsBitField()
  .add(IntentsBitField.Flags.Guilds)
  .add(IntentsBitField.Flags.GuildMessages)
  .add(IntentsBitField.Flags.MessageContent); // 消息内容读取权限

const client = new Client({ intents: intents });

client.on('ready', () => {
  console.log('Logged in!');
});

// 注意:v14中原message事件已更名为messageCreate
client.on('messageCreate', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

const mySecret = process.env['TOKEN'];
client.login(mySecret);

针对Discord.js v13版本

const { Client, Intents } = require('discord.js');
const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES
  ]
});

client.on('ready', () => {
  console.log('Logged in!');
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

const mySecret = process.env['TOKEN'];
client.login(mySecret);

3. 开启消息内容特权(仅v14+需要)

登录Discord开发者门户,找到你的机器人应用:

  • 进入「Bot」页面
  • 滚动到「Privileged Gateway Intents」区域
  • 开启「Message Content Intent」开关

内容的提问来源于stack exchange,提问作者Muhammad Bin Saleem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:36:33