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

discord.js v13.1.0机器人无报错但不回复用户消息如何解决

问题根因

discord.js v13 开始对网关意图做了严格限制,你当前仅声明了GUILDS意图,缺少接收消息、读取消息内容所需的必要权限与配置,所以messageCreate事件不会被触发,自然也不会有回复。

修复步骤

1. 调整代码中的意图配置

修改index.js中客户端初始化部分的代码,新增消息相关的意图与partial配置,用来接收服务器消息和私信消息:

const { Client, Intents } = require('discord.js');
const { token } = require('./config.json');

const client = new Client({ 
  intents: [
    Intents.FLAGS.GUILDS,
    // 接收服务器内消息
    Intents.FLAGS.GUILD_MESSAGES,
    // 接收私信消息,如果不需要可以删掉
    Intents.FLAGS.DIRECT_MESSAGES
  ],
  // 适配私信频道的partial类型,不需要接收私信可以删掉这行
  partials: ['CHANNEL']
});

client.once('ready', () => {
    console.log('Ready!');
});

client.on ('messageCreate', (message) => {
    // 过滤机器人自己发的消息,避免触发循环
    if (message.author.bot) return;
    if (message.content === 'hello') {
        message.reply('Hello').catch(console.error);
    };
});

client.login(token);

这里新增了机器人消息过滤逻辑,避免机器人自己发的消息触发规则陷入循环,同时给回复加了错误捕获,有异常会在控制台输出方便排查。

2. 开启Discord开发者后台的特权权限

  1. 打开Discord开发者门户,找到你的机器人应用
  2. 进入左侧「Bot」选项卡,向下滚动到Privileged Gateway Intents区域
  3. 打开Message Content Intent的开关,保存配置
    没有这个权限的话,你无法获取用户发送的消息内容,message.content会始终为空,自然匹配不到hello的触发条件。

3. 确认服务器权限

检查机器人在对应服务器的角色权限,确保拥有以下权限:

  • 查看频道/阅读消息
  • 发送消息
  • 阅读消息历史
    如果是特定频道单独设置了权限,也要单独给机器人开启上述权限。

完成以上三步重启机器人即可正常回复消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:18:03