discord.js使用斜杠命令出现Invalid interaction application command错误怎么解决
修复discord.js斜杠命令
Invalid interaction application command错误方案 首先排查命令注册参数匹配问题:
你需要确认全局/服务器侧已经注册的ping命令,其name、description、options字段和当前代码里定义的完全一致,拼写、大小写不能有任何出入,参数不匹配是触发该报错的最常见原因。如果修改过命令配置,要重新走命令注册流程,全局命令注册有1小时缓存,测试阶段建议使用服务器专属命令,注册后立即生效。其次检查权限配置:
你代码中设置了permission: "ADMINISTRATOR",需要确认两点:一是注册命令时没有额外设置权限覆盖规则,二是邀请机器人进服时,邀请链接已携带scope=bot%20applications.commands参数,给机器人开通了斜杠命令调用权限,权限不足也会触发该报错。修复代码里的交互对象兼容逻辑:
斜杠命令的交互对象(CommandInteraction)不存在author字段,只有user字段,你当前代码直接访问message.author.id在斜杠调用时会抛出未定义错误,间接导致命令校验失败,需要把判断逻辑修改为:
const userId = message instanceof Discord.CommandInteraction ? message.user.id : message.author.id; if (userId === config.dev) {
另外斜杠命令要求必须在3秒内完成响应,如果有耗时异步逻辑需要处理,要先调用await message.deferReply()占位,超时未响应也会触发无效命令错误。
- 最后排查自定义基类逻辑:
你用到了自定义的../structures/command.js基类,需要确认该基类对type: "BOTH"参数的处理逻辑正常,没有漏传命令注册所需的字段给discord.js的REST API。
内容的提问来源于stack exchange,提问作者Sour
相关产品推荐
相关产品推荐

