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

discord.js-selfbot-v13中sendSlash调用/about斜杠命令报错问题

错误排查:botId is not a bot or does not have an application slash command

问题场景

使用discord.js-selfbot-v13编写代码,意图让账号在ID为1190781950944886870的频道中,触发ID为1190781950944886867的机器人的/about斜杠命令,运行时出现如下错误。

代码示例

const { Client } = require('discord.js-selfbot-v13');
const client = new Client({
    checkUpdate: false,
});

client.on('ready', async () => {
    const channelId = '1190781950944886870';
    const channel = client.channels.cache.get(channelId);
  
    if (channel) {
      console.log(`Channel found: ${channel.name}`);
      channel.sendSlash('1190781950944886867', 'about');
    } else {
      console.error('Channel not found.');
    }
  });

client.login('my token');

错误信息

Channel found: general
C:\Users\sir\node_modules\discord.js-selfbot-v13\src\errors\DJSError.js:40
  if (!msg) throw new Error(`An invalid error message key was used: ${key}.`);
                  ^

Error: An invalid error message key was used: botId is not a bot or does not have an application slash command.
    at message (C:\Users\sir\node_modules\discord.js-selfbot-v13\src\errors\DJSError.js:40:19)
    at new DiscordjsError (C:\Users\sir\node_modules\discord.js-selfbot-v13\src\errors\DJSError.js:16:13)
    at TextChannel.sendSlash (C:\Users\sir\node_modules\discord.js-selfbot-v13\src\structures\interfaces\TextBasedChannel.js:497:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.10.0

错误原因

  1. 目标ID对应的账号不是机器人账号,或者该机器人未注册/about斜杠命令(全局或服务器级)
  2. 客户端缓存未加载该机器人的应用命令数据,导致sendSlash无法定位对应命令
  3. 机器人未加入目标频道所在的服务器,或缺少使用斜杠命令的权限

解决方案

  • 验证目标ID是否为机器人:
    在Discord客户端查看该用户资料,确认带有「Bot」标签。如果不是机器人,替换为正确的机器人ID。
  • 确认机器人已注册/about命令:
    在目标服务器手动输入/about,检查是否能唤起该命令。如果不行,要么是命令名称拼写错误(注意斜杠命令名称为小写),要么是机器人未注册该命令,需联系开发者确认。
  • 强制刷新应用命令缓存:
    在发送斜杠命令前,先获取服务器的应用命令以刷新缓存,修改代码如下:
    const { Client } = require('discord.js-selfbot-v13');
    const client = new Client({
        checkUpdate: false,
    });
    
    client.on('ready', async () => {
        const channelId = '1190781950944886870';
        const botId = '1190781950944886867';
        const channel = client.channels.cache.get(channelId);
      
        if (channel) {
          console.log(`Channel found: ${channel.name}`);
          // 先获取目标机器人的服务器应用命令,刷新缓存
          await channel.guild.commands.fetch({ user: botId });
          // 发送斜杠命令
          await channel.sendSlash(botId, 'about');
        } else {
          console.error('Channel not found.');
        }
      });
    
    client.login('my token');
    
  • 检查机器人服务器状态:
    确认该机器人已加入目标频道所在的服务器,并且拥有发送消息、使用应用命令的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:02:13