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

discord.py开发verify验证命令报Unknown Role错误如何解决?

问题排查与修复方案

1. 核心报错原因:角色名拼写不匹配

你代码中查找角色的语句为role = get(member.guild.roles, name="verified"),而你确认服务器内存在的角色名为verifed,二者拼写不一致(代码中的拼写多了第二个字母i),导致get方法无法匹配到对应角色,返回空值,最终触发未知角色报错。
修复方式:将代码中的查找参数改为和服务器角色名完全一致的name="verifed",或者将服务器内的角色名修改为verified即可。

补充说明:discord.py的get方法对字符串匹配大小写敏感,如果你确认拼写完全一致仍报错,可检查角色名的大小写是否和代码中完全相同。

2. 隐藏语法错误:add_roles传参错误

你当前的添加角色代码await member.add_roles(member, role)存在参数冗余问题:member.add_roles的调用主体已经是待赋予角色的成员对象,不需要再将member作为第一个参数传入,多余参数会导致后续调用异常。
修复方式:将该行代码修改为await member.add_roles(role)即可。

3. 可选稳定性优化

  • 增加空值判断:获取角色后增加判断逻辑if not role:,匹配不到角色时直接返回“验证角色不存在,请联系服务器管理员”的提示,避免抛出异常。
  • 检查机器人权限:确认机器人的角色层级高于待赋予的验证角色,且机器人拥有「管理角色」权限,否则即使匹配到角色也会赋值失败。

内容的提问来源于stack exchange,提问作者Ruko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:39:01