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

拥有Discord服务器管理员权限的Bot无法添加身份组、修改昵称报错

解决Discord Bot已获管理员权限仍报missing permissions的方案
  • 优先检查角色层级优先级

    Discord角色权限优先级由服务器角色列表的上下排列顺序决定,即便Bot拥有管理员权限,只要Bot自身的角色位置低于以下两类角色,就会触发权限报错:

    1. 你要分配给用户的目标角色new role1
    2. 你要修改昵称的目标用户(含测试小号)的最高等级角色
      修复方法:进入服务器设置-角色页面,将Bot对应的角色拖动到高于new role1、以及所有需要操作的用户的最高角色之上,保存设置即可生效。
  • 检查Discord开发者后台的特权意图开启状态
    目前Discord v10及以上版本API要求,所有操作服务器成员的功能必须开启特权意图。操作路径:进入Discord开发者后台的对应Bot管理页,找到Privileged Gateway Intents板块,开启Server Members Intent权限,保存后重启Bot即可。
  • 排查特殊场景限制
    • 平台固有规则限制Bot无法修改服务器所有者的昵称,即便Bot拥有管理员权限也不例外
    • 代码中discord.utils.get如果未匹配到new role1对应的角色会返回None,部分版本的discord.py传入None调用add_roles时会抛出权限类错误,建议先补充判空逻辑,参考代码如下:
      isp = "new role1"
      lis = [0, 'ingame_name', 'Real_first_name']
      target_role = discord.utils.get(message.author.guild.roles, name=isp)
      if not target_role:
          await message.channel.send("目标角色不存在")
          return
      await message.author.add_roles(target_role)
      await message.author.edit(nick=f"{lis[1]} ({lis[2]})")
      
  • 检查Bot邀请链接的权限位
    生成Bot邀请链接时,建议勾选Manage Roles、Manage Nicknames两个核心权限位,避免后续权限覆盖异常。

内容的提问来源于stack exchange,提问作者Роберт

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:06:02