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

Discord.js机器人在线但无法响应/ping、/beep命令问题

解决Discord.js机器人不响应/ping、/beep命令的问题

你的机器人无响应的核心原因有两点:

1. 未配置必要的消息读取权限与意图

Discord.js v14+需要显式声明GatewayIntentBits.MessageContent和GatewayIntentBits.GuildMessages意图,同时要在Discord开发者门户开启消息内容特权,否则机器人无法读取频道内的消息内容。

2. 使用了已废弃的事件监听

message事件在Discord.js v13及以上版本已被废弃,需替换为messageCreate(或Events.MessageCreate枚举)事件。


修正后的代码

const { Client, Events, GatewayIntentBits } = require("discord.js");
const dotenv = require("dotenv");
dotenv.config();

// 补充所需意图
const client = new Client({ 
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ] 
});

client.once(Events.ClientReady, (c) => {
    console.log(`Ready! Logged in as ${c.user.tag}`);
    client.user.setActivity("testing");
});

// 使用messageCreate事件监听消息
client.on(Events.MessageCreate, (message) => {
    // 忽略机器人自身发送的消息,避免触发循环
    if (message.author.bot) return;

    if (message.content === "/ping") {
        message.channel.send("Pong.");
    } else if (message.content.startsWith("/beep")) {
        message.channel.send("Boop.");
    }
});

client.login(process.env.TOKEN);

关键配置步骤

进入Discord开发者门户,找到你的机器人应用:

  1. 切换到Bot标签页
  2. 在“Privileged Gateway Intents”区域,开启Message Content Intent

完成代码修改和上述配置后,重启机器人,即可正常响应/ping、/beep命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:47:14