Discord.js开发机器人时报DiscordAPIError: Missing Access错误求解决
问题原因及解决方法
1. 核心错误:Missing Access(错误码50001)修复
你遇到的403权限错误是机器人没有创建斜杠命令的权限,按以下步骤排查配置:
- 打开Discord开发者后台,进入对应机器人应用页面,找到
OAuth2->URL Generator - 权限勾选区同时勾选
bot和applications.commands两个选项 - 下方Bot权限列表勾选
发送消息、读取消息历史、使用斜杠命令等必要权限 - 复制生成的邀请链接,重新邀请机器人进入目标服务器,覆盖之前的权限配置
- 确认代码中填写的
guildId和你要部署的服务器ID完全一致,且机器人已经成功加入该服务器 - 进入服务器设置->角色页面,将机器人对应的角色拖动到普通用户角色上方,确保角色权限等级足够
2. 代码可修复问题
你的代码还存在两处运行错误,需要同步修改:
2.1 交互参数获取错误
原代码中解构的Options首字母大写错误,且缺少参数读取逻辑,修正如下:
// 原代码错误写法 const { commandName, Options } = interaction // 修正为 const { commandName, options } = interaction // add命令内补充参数读取逻辑 const number1 = options.getNumber('number1') const number2 = options.getNumber('number2')
2.2 模板字符串语法错误
原代码中输出求和结果的字符串用了单引号,无法解析内部变量,改为反引号即可:
// 原代码错误写法 content: 'The sum is ${number1 + number2}' // 修正为 content: `The sum is ${number1 + number2}`
2.3 可选优化
当前代码每次机器人启动都会重复创建相同命令,容易触发Discord接口速率限制,建议开发阶段仅在命令不存在时创建,生产环境使用全局命令(全局命令默认有1小时缓存生效时间)。
内容的提问来源于stack exchange,提问作者Zell
相关产品推荐
相关产品推荐

