Discord机器人权限异常:仅Owner角色账号可执行指令
Discord机器人普通用户无响应问题解决
问题现象
- 拥有Owner角色的账号执行
hello斜杠指令时,机器人正常响应(见下图)
- 切换至仅拥有Everyone角色的账号时,机器人完全无响应(见下图)

核心原因
出现这种差异的本质是权限配置问题:要么机器人缺乏接收普通用户交互的服务器权限,要么斜杠指令被限制为仅特定角色可使用。
分步解决方案
1. 验证机器人的服务器基础权限
进入服务器设置 → 角色 → 找到机器人角色,确保勾选以下权限:
发送消息使用斜杠指令嵌入链接(如果指令包含嵌入内容)
2. 调整Slash指令的权限配置
使用dislash库注册指令时,无需额外限制即可允许所有用户使用,代码示例:
import discord from discord.ext import commands from dislash import InteractionClient, Option, OptionType bot = commands.Bot(command_prefix='!') inter_client = InteractionClient(bot) @bot.event async def on_ready(): print('Bot is launch!') # 注册指令(默认允许所有服务器内用户使用) @inter_client.slash_command(description="Says Hello") async def hello(ctx): await ctx.respond(content='asfd', ephemeral=True) bot.run(token)
3. 手动在Discord后台配置指令权限
如果代码层面无问题,直接在服务器端调整:
- 服务器设置 → 整合 → 选中你的机器人 → 点击「管理指令」
- 找到
hello指令,将权限设置为允许@everyone使用
4. 确认机器人的OAuth2授权范围
重新生成机器人邀请链接时,务必包含:
applications.commands(斜杠指令权限)bot(基础机器人权限)
勾选必要权限项后重新邀请机器人到服务器。
内容的提问来源于stack exchange,提问作者JustNimay
相关产品推荐
相关产品推荐

