Discord bot无法检测到消息,附discord.js代码求问题定位
问题原因及修复方案
1. 事件名已弃用
discord.js v13及后续版本已经移除了旧的message事件,需替换为messageCreate事件才能监听消息发送行为。
2. 缺少必要的网关意图
要正常读取消息内容,除了已配置的消息相关意图外,还需要额外添加MessageContent意图。
3. 开发者后台未开启特权意图
你需要登录Discord开发者平台,进入对应Bot的设置页,在「Privileged Gateway Intents」板块下打开Message Content Intent的开关,否则Discord不会向你的Bot推送消息相关的事件数据。
修正后的代码示例
const Discord = require("discord.js"); const client = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.DirectMessages, Discord.GatewayIntentBits.MessageContent ] }); const token = '<token here>'; const PREFIX = '!'; client.on('ready', () =>{ console.log('Bot Online! Woohoo!'); }); // 替换为正确的事件名 client.on('messageCreate', message =>{ console.log('Message registered!'); }); client.login(token);
内容的提问来源于stack exchange,提问作者Treesus
相关产品推荐
相关产品推荐

