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

Discord.js消息监听失效求助:无法检测消息并回复

问题排查:Discord机器人无法监听消息事件

核心原因分析

  1. restMode导致无法接收实时事件
    你配置了restMode: true,该选项会让机器人仅使用Discord REST API,不建立网关连接。而消息监听这类实时事件完全依赖网关推送,开启后自然无法触发message事件回调。

  2. 缺少消息类网关意图
    当前仅声明了guilds意图,要监听服务器内的消息,需要补充消息相关意图(比如guildMessages,若使用Eris库;或是GuildMessages+MessageContent,若使用Discord.js)。其中MessageContent属于特权意图,需要在Discord开发者后台手动开启。

  3. 事件名称可能不匹配
    部分Discord库(如Discord.js v14+、Eris新版本)已将消息事件名称从message改为messageCreate,旧事件名无法触发回调。


修复后的代码示例

// 调整配置:关闭restMode,补充必要意图
const bot = new CommandClient(`Bot ${token}`, {
  intents: ['guilds', 'guildMessages', 'messageContent'], // 根据使用的库调整意图名称
  maxShards: 'auto',
  restMode: false // 必须关闭才能接收网关事件
})

// 使用正确的事件名称,此处以messageCreate为例
bot.on('messageCreate', (message) => {
  message.reply('This is a reply!')
    .then(() => console.log("test"))
    .catch(console.error);
})

额外检查项

  • 登录Discord开发者门户,进入你的机器人应用页面,在「Privileged Gateway Intents」中开启Message Content Intent并保存。
  • 确认机器人的邀请链接包含必要权限(如SendMessages、ReadMessageHistory等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:15:27