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

Discord.js机器人报错TypeError [ClientMissingIntents]求助

解决Discord.js的ClientMissingIntents错误

这个错误是因为Discord.js从v13版本开始,要求创建机器人客户端时必须显式指定网关意图(Intents),用来声明你的机器人需要接收哪些类型的平台事件数据,比如消息、成员变动等。你的代码里创建Discord.Client()时没有传入任何意图配置,所以触发了这个报错。

修复步骤

  • 给Discord.Client()添加必要的意图参数:你的机器人用到了消息事件,至少需要Guilds(服务器基础数据)和GuildMessages(服务器内消息)这两个意图
  • 修正代码里的两处小问题:
    1. 原代码中!message.content.startsWith("prefix")写错了,应该引用prefix变量而非字符串"prefix"
    2. 最后那个非ping指令的判断逻辑有问题,会导致所有非ping指令都返回错误提示,改成else分支更合理
    3. Discord.js v14版本中message事件已改名为messageCreate,需要同步修改

修改后的完整代码

const Discord = require("discord.js");
// 创建Client时传入意图配置
const bot = new Discord.Client({
  intents: [
    Discord.IntentsBitField.Flags.Guilds,
    Discord.IntentsBitField.Flags.GuildMessages,
    // 如需接收私信消息,可添加以下行
    // Discord.IntentsBitField.Flags.DirectMessages
  ]
});
const token = "你的机器人令牌";
const prefix = "t/";

bot.once("ready", () => {
  console.log("BOT WENT ONLINE");
});

bot.on("messageCreate", (message) => {
  if (message.author.bot) return;
  if (!message.content.startsWith(prefix)) return;

  const command = message.content.slice(prefix.length).trim().toLowerCase();

  if (command === "ping") {
    message.channel.send("PONG");
  } else {
    message.channel.send("WRONG COMMANDS!");
  }
});

bot.login(token);

额外说明

  • 若你使用的是Discord.js v13版本,意图的写法为Discord.Intents.FLAGS.GUILDS、Discord.Intents.FLAGS.GUILD_MESSAGES,注意命名差异
  • 要确保你的机器人在Discord开发者平台的「Bot」页面中,开启了对应的特权网关意图(比如消息内容意图,现在需要手动开启才能正常接收消息内容)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:45:34