Discord Node.js机器人输入ping无Pong响应问题求助
问题修复方案
你的代码存在三个关键问题导致ping功能失效,逐一修复即可:
1. 替换已废弃的事件监听
discord.js v14及以上版本不再使用message事件监听消息,需改用messageCreate事件。
2. 补充消息内容读取权限
要读取消息内容,必须在客户端的intents配置中添加GatewayIntentBits.MessageContent,同时需要在Discord开发者后台的机器人面板里开启消息内容特权(Message Content Intent)。
3. 修正后的完整代码
require('dotenv').config(); const Discord = require('discord.js'); const client = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent // 新增消息内容读取意图 ]}); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); // 替换为正确的messageCreate事件 client.on('messageCreate', msg => { if (msg.content === 'ping') { msg.reply('Pong!'); } }); client.login(process.env.TOKEN); // 建议通过环境变量读取token,避免硬编码泄露风险
额外检查项
- 确认安装的是discord.js v14或更新版本,若版本过低,执行
npm install discord.js@latest完成升级。 - 登录Discord开发者平台的机器人应用页面,进入「Bot」标签,在「Privileged Gateway Intents」区域开启「Message Content Intent」开关。
内容的提问来源于stack exchange,提问作者Toquinhoro
相关产品推荐
相关产品推荐

