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

Discord机器人无法检测消息或检测后内容为空问题求助

Discord机器人消息检测问题修复方案

问题分析

你遇到的两个核心问题:

  • 机器人无法检测到消息:大概率是未开启Discord要求的消息内容意图,或机器人权限不足
  • 检测到消息但显示空内容:当消息仅含附件/嵌入时message.content为空,或partial消息未完整获取

修复步骤

1. 开启消息内容意图(关键)

Discord隐私政策更新后,读取消息内容需要手动开启该权限:

  • 登录Discord开发者门户,进入你的机器人应用
  • 切换到「Bot」选项卡,找到「Privileged Gateway Intents」区域
  • 开启「Message Content Intent」开关并保存

2. 检查机器人服务器权限

确保机器人角色拥有以下核心权限:

  • 查看频道
  • 读取消息历史
  • 发送消息

3. 优化代码处理边界情况

修改后的代码如下,解决partial消息和空内容问题:

const Discord = require("discord.js");
const client = new Discord.Client({
    intents: [
        'GUILDS',
        'DIRECT_MESSAGES',
        'GUILD_MESSAGES'
    ],
    partials: ['MESSAGE', 'CHANNEL']
});

client.once('ready', () => {
    console.log(`Bot started as ${client.user.tag}!`);
});

client.on('messageCreate', async message => {
    if (message.author.bot) return;

    // 处理partial消息,获取完整内容
    if (message.partial) {
        try {
            await message.fetch();
        } catch (err) {
            console.error('获取完整消息失败:', err);
            return;
        }
    }

    const username = message.author.username;
    // 为空消息设置默认提示
    const userMessage = message.content || '无文本内容(附件/嵌入消息)';
    const channel = message.channel.name || '未知频道';

    console.log(`${username} said: '${userMessage}' (${channel})`);
    // 宽松匹配触发关键词,提升实用性
    if (userMessage.toLowerCase().includes('hello')) {
        message.channel.send(`Hey there, ${username}!`);
    }
});

const token = 'my token';
client.login(token);

4. 版本兼容性检查

如果使用Discord.js v14+,建议改用IntentsBitField写法:

const { Client, IntentsBitField } = require('discord.js');
const client = new Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
        IntentsBitField.Flags.DirectMessages
    ],
    partials: ['MESSAGE', 'CHANNEL']
});

运行npm install discord.js@latest可更新到最新稳定版


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:33:13