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

Discord机器人无法响应Slash命令?新手开发者技术求助

解决Discord机器人不响应Slash命令的问题

你的代码仅监听了交互事件,但未完成Slash命令的注册流程,这是机器人无法响应命令的核心原因。以下是具体修复方案:

1. 添加命令注册逻辑

Slash命令需要先注册到Discord应用命令API,机器人才能接收并响应对应的交互请求。你可以在机器人启动时执行一次注册(注:注册操作只需执行一次,无需每次启动都运行):

const { GatewayIntentBits, SlashCommandBuilder, Events, REST, Routes } = require('discord.js');
const { Client, Partials } = require("discord.js")
const auth = require('./auth.json')
const token = auth.token
const clientId = auth.clientId; // 从Discord开发者门户获取机器人的Client ID
const guildId = auth.guildId; // 可选:测试用服务器ID,全局命令无需此参数

// 定义Slash命令
const commands = [
  new SlashCommandBuilder()
    .setName('pinger')
    .setDescription('回复Ponger..')
].map(command => command.toJSON());

// 注册命令到Discord API
const rest = new REST({ version: '10' }).setToken(token);

(async () => {
  try {
    console.log('开始注册应用命令...');

    // 注册全局命令(生效需约1小时,适用于正式环境)
    // await rest.put(Routes.applicationCommands(clientId), { body: commands });
    
    // 注册服务器专属命令(立即生效,适用于测试阶段)
    await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands });

    console.log('应用命令注册成功!');
  } catch (error) {
    console.error(error);
  }
})();

// 客户端初始化与交互监听
const bot = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
    ],
    partials: [Partials.Channel, Partials.Message, Partials.Reaction, Partials.User, Partials.GuildMember]
})

bot.on(Events.InteractionCreate, async interaction => {
    if (!interaction.isChatInputCommand()) return;
    if (interaction.commandName === 'pinger') {
        await interaction.reply({content: "Ponger..", ephemeral: true})
    }
})

bot.login(token)

2. 检查关键配置

  • 确保auth.json中包含clientId(可在Discord开发者门户的「OAuth2」页面获取)
  • 重新邀请机器人到服务器:在开发者门户的OAuth2 URL生成器中,勾选applications.commands和bot权限,生成新链接后重新邀请
  • 确认Guilds intent已开启(你的代码中已配置,此部分无需修改)

3. 额外注意事项

  • 全局命令注册后需等待约1小时才能在所有服务器生效,测试阶段优先使用服务器专属命令
  • 命令注册代码执行成功后,可注释掉该部分,避免重复注册

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:37:30