Discord机器人显示已加入服务器但不在成员列表,同步命令报403错误
Discord机器人加入服务器后不可见+命令同步403错误解决方法
问题描述
- 基于discord.py开发的机器人在私人服务器运行正常,加入另一拥有管理权限的服务器后:
- 机器人私信提示已加入,但服务器成员列表(含指定频道成员列表)中无法找到它
- 使用新服务器的Guild ID运行脚本时,触发403权限错误:
[2022-12-23 04:27:15] [ERROR ] discord.client: Ignoring exception in on_ready Traceback (most recent call last): File "C:\Python\Python38\lib\site-packages\discord\client.py", line 409, in _run_event await coro(*args, **kwargs) File "C:\Users\chris\Desktop\Jap App\Japanese_Vocabulary_Bot.py", line 75, in on_ready await tree.sync(guild=discord.Object(id=guild)) File "C:\Python\Python38\lib\site-packages\discord\app_commands\tree.py", line 1071, in sync data = await self._http.bulk_upsert_guild_commands(self.client.application_id, guild.id, payload=payload) File "C:\Python\Python38\lib\site-packages\discord\http.py", line 738, in request raise Forbidden(response, data) discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
- 已尝试但无效的操作:
- 创建机器人时已设置权限,但因看不到机器人无法分配角色
- 在Bot选项卡添加
application.commands等选项,切换标签页后设置自动重置无法保存 - 使用OAuth2 URL生成器勾选
bot、applications.commands及对应权限,生成框始终显示Please provide a template uri,关闭浏览器防护功能仍无改善
解决方案
1. 修复机器人不可见问题
- 检查服务器成员显示设置:关闭「隐藏离线成员」选项,切换为「显示所有成员」,机器人可能因离线状态被隐藏
- 强制刷新客户端:按
Ctrl+R(Windows)或Cmd+R(Mac)刷新Discord客户端,清除本地缓存导致的显示异常 - 重新生成邀请链接添加机器人:
- 进入Discord开发者平台,找到目标应用,进入「OAuth2 → URL生成器」
- 先在「范围(Scopes)」中勾选
bot和applications.commands - 在「机器人权限(Bot Permissions)」中勾选至少「查看频道」权限(确保机器人能出现在成员列表),按需添加其他权限
- 复制生成的链接,在浏览器打开后选择目标服务器完成添加
2. 解决命令同步403错误
- 确认邀请链接包含
applications.commands范围:旧链接若未包含该范围,需重新用新链接添加机器人,补选范围无效 - 给机器人分配对应权限:添加成功后,为机器人设置包含「管理服务器」或「应用命令」权限的角色
- 验证Guild ID正确性:确保同步命令时使用的是目标服务器的有效ID,且机器人已成功加入该服务器
- 临时尝试全局同步:将
await tree.sync(guild=discord.Object(id=guild))改为await tree.sync(),全局同步可能需1小时左右生效,用于测试权限是否正常
3. 修复OAuth2设置异常问题
- 清除浏览器缓存和Cookie:移除Discord开发者平台相关缓存后,重新登录操作
- 更换主流浏览器:改用Chrome/Firefox等浏览器,避免Brave隐私防护的残留影响
- 手动构造邀请链接:若生成器仍异常,可按以下格式手动拼接:
https://discord.com/oauth2/authorize?client_id=你的机器人客户端ID&permissions=权限数字总和&scope=bot%20applications.commands- 客户端ID在「OAuth2 → 一般」页面获取
- 权限数字可通过勾选权限后从生成器复制,或手动相加所需权限的对应数值(如「查看频道」为1024,「管理服务器」为8)
内容的提问来源于stack exchange,提问作者J.Doe
相关产品推荐
相关产品推荐

