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

Novus/discord.py修改频道/类别权限报Missing Permissions错误解决

Discord机器人批量修改频道权限报403权限缺失问题

我尝试通过如下代码批量修改多个类别和频道的权限:

role = get(guild.roles, name="Fun")
for channel in guild.channels:
    overwrites = channel.overwrites_for(role)
    overwrites.view_channel = False
    await channel.set_permissions(role, overwrite=overwrites)

运行后返回如下报错:

await channel.set_permissions(role, overwrite=overwrites)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

为机器人授予administrator权限时代码可正常运行,但授予除administrator外的所有权限、将机器人角色置于角色列表顶端、为机器人配置所有类别权限的场景下均会报错,使用的是discord.py的分支版本Novus,二者功能基本一致。

补充说明

  • 我已在discord.py、Novus、Discord开发者官方服务器咨询该问题,均未获得有效解决方案,Discord开发者官方服务器未对我的问题作出回复。
  • 我手动将机器人角色添加到对应类别并开启view_channel权限后功能可正常运行,但该方案需要服务器所有者为每个类别和频道手动配置,操作非常不便。
问题根因与解决方案

根因为类别/频道被设置为私有,因此即便全局权限配置正确也无法完成修改。
解决方案如下:

  1. 告知用户对应的私有频道/类别,手动添加具备对应权限的角色
  2. 新增提示告知用户可为机器人授予administrator权限即可自动完成操作
    该方案可覆盖同类问题场景,可供后续遇到相同问题的开发者参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:24:02