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

使用Node.js开发Discord Bot时无法接收消息的问题

问题解决:Discord Bot无法接收消息

核心问题分析

你的Bot收不到消息主要是两个原因:

  • 网关意图配置错误:当前只启用了AutoModerationConfiguration,这个权限和消息读取无关,必须添加消息相关的意图才能获取消息事件。
  • 事件名称过时:Discord.js v13及以上版本已废弃message事件,需改用messageCreate事件监听新消息。

修正步骤

  1. 配置正确的网关意图
    需要添加以下必要意图:

    • Guilds:基础服务器访问权限,多数Bot功能依赖它
    • GuildMessages:读取服务器内的消息
    • DirectMessages(可选):读取Bot收到的私信
    • MessageContent:特权意图,需在Discord开发者门户手动开启,用于读取消息内容
  2. 替换为正确的事件名称
    把client.on('message', ...)改成client.on('messageCreate', ...)

修正后的完整代码

const Discord = require("discord.js");
const client = new Discord.Client({
  intents: [
    "Guilds",
    "GuildMessages",
    "DirectMessages",
    "MessageContent"
  ]
});

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('messageCreate', msg => {
  console.log('Message received:', msg.content);
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

client.login('你的Bot令牌');

额外操作

登录Discord开发者门户,找到你的Bot应用,进入「Bot」页面,在「Privileged Gateway Intents」区域开启Message Content Intent,保存后重启Bot即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:52:09