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

Discord机器人已登录但不响应消息,请求排查故障

问题原因及解决方案

问题出在机器人的意图(Intents)配置不完整,导致无法触发messageCreate事件。

具体原因

discord.js v14及以上版本要求明确声明机器人所需的权限意图,你当前仅配置了数值为8的Guilds意图——这个权限仅能让机器人登录并识别服务器,但没有权限接收服务器内的消息、读取消息内容,所以messageCreate事件完全不会被触发。

修复步骤

  1. 修正代码中的意图配置
    替换原有的intents配置,添加接收消息和读取内容所需的意图。推荐使用枚举值而非硬编码数字,避免记错数值:

    require('dotenv').config();
    const Discord = require('discord.js');
    
    const client = new Discord.Client({ 
      intents: [
        Discord.IntentsBitField.Flags.Guilds,
        Discord.IntentsBitField.Flags.GuildMessages,
        Discord.IntentsBitField.Flags.MessageContent
      ] 
    });
    
    client.on('ready', () => {
      console.log("Logged in as bot!");
      // client.user.setActivity(`Locating new targets for synthesis.`, { type: "WATCHING" });
    })
    
    client.on('messageCreate', msg => {
      if (msg.content === 'ping') {
        msg.channel.send('pong')
      }
    })
    
    client.login(process.env.TOKEN);
    

    对应的数值配置也可以写成[1, 32, 1024],但枚举值可读性更强。

  2. 开启Discord开发者后台的特权意图
    MessageContent属于特权意图,需要手动在Discord开发者平台开启:

    • 进入你的机器人应用页面,切换到「Bot」标签页
    • 找到「Privileged Gateway Intents」区域
    • 开启「Message Content Intent」并保存设置

完成以上两步后,重启机器人,发送ping就能收到pong响应了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:40:43