求助:Discord.js机器人无法回复消息的问题排查
问题原因及解决办法
你的机器人无法回复消息,核心问题是缺少读取消息内容的必要配置,具体解决步骤如下:
添加MessageContent意图
Discord.js v14+版本中,要读取消息内容必须显式声明GatewayIntentBits.MessageContent意图,你的代码里没有包含这个,导致机器人无法获取message.content的值。修改后的客户端初始化代码如下:const { GatewayIntentBits } = require("discord.js") const Discord = require("discord.js") const TOKEN = "..." const client = new Discord.Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent // 新增这个意图 ] }) client.on("ready", () => { console.log(`Logged in as ${client.user.tag}`) }) client.on("messageCreate", (message) => { if (message.content == "sup"){ message.reply("Hello World!") } }) client.login(TOKEN)开启开发者门户的消息内容特权
仅修改代码还不够,需要到Discord开发者平台,进入你的机器人应用页面:- 切换到
Bot标签页 - 找到
Privileged Gateway Intents区域 - 开启
Message Content Intent选项 - 保存设置后重启机器人
- 切换到
额外确认
虽然你提到机器人有管理员权限,但可以再检查服务器中机器人角色的读取消息历史、发送消息权限是否被单独禁用(管理员权限默认包含这些,但不排除被手动修改的可能)。
内容的提问来源于stack exchange,提问作者Natan Niemetz
相关产品推荐
相关产品推荐

