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

如何检查机器人是否具备添加Slash Commands的权限?

如何检查机器人是否拥有添加Slash Commands的权限

我来帮你梳理下怎么检查机器人是否有权限添加Slash Commands,分手动验证和代码测试两种方式,都很实用:

核心权限前提

首先得明确:机器人要添加Slash Commands,必须被授权applications.commands这个Scope(注意不是普通的服务器权限)。如果邀请机器人的时候没带上这个Scope,哪怕给机器人服务器管理员权限也没用。

手动检查步骤(通过Discord开发者平台&服务器设置)

  • 第一步:打开Discord开发者平台,找到你的机器人应用,进入「OAuth2」→「URL Generator」页面
  • 第二步:在「Scopes」区域,确认applications.commands和bot这两个选项都被勾选了——如果之前邀请机器人时没加这个Scope,你需要重新生成包含这两个Scope的邀请链接,再到目标服务器重新授权(不用踢掉机器人,重新授权会补充权限)
  • 第三步:进入目标服务器的「服务器设置」→「Integrations」,找到你的机器人,点击它的「权限」选项,查看已授权的Scopes列表,确认applications.commands在其中

代码验证方法(以Discord.js v14为例)

如果想通过代码快速验证,可以尝试注册一个临时测试命令,根据是否报错来判断权限:

const { SlashCommandBuilder } = require('discord.js');

async function checkSlashCommandPermission(guild) {
  // 创建一个临时测试命令
  const testCmd = new SlashCommandBuilder()
    .setName('perm-check')
    .setDescription('测试机器人添加Slash命令的权限');

  try {
    // 尝试注册命令到目标服务器
    const registeredCmd = await guild.commands.create(testCmd);
    console.log('✅ 机器人有权限添加Slash Commands');
    // 清理临时命令
    await registeredCmd.delete();
    return true;
  } catch (err) {
    console.error('❌ 机器人无权限添加Slash Commands,错误信息:', err.message);
    // 常见错误:"Missing Access" 表示缺少applications.commands授权;"Missing Permissions" 可能是服务器权限不足(但添加命令主要依赖Scope)
    return false;
  }
}

// 使用示例:传入你要检查的Guild对象
// checkSlashCommandPermission(yourGuildObject);

常见排查点

  • 如果机器人是服务器管理员但还是加不了命令:90%的可能是邀请时没带上applications.commands Scope,重新生成包含该Scope的邀请链接授权即可
  • 如果代码报错"403 Forbidden":检查机器人的Token是否正确,以及应用是否被Discord限制(比如违规被限流)
  • 如果是全局命令添加失败:确认你的应用已经通过Discord的验证(如果机器人要添加全局命令且用户数超过100,需要验证)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:22:37