Python 3.x 如何授予自己的机器人查看类别的权限?

Python 3.x 如何授予自己的机器人查看类别的权限?,python-3.x,discord.py,Python 3.x,Discord.py,我的机器人有一个创建类别的命令,在它里面有一个文本和语音频道。创建类别时,我会覆盖权限,仅允许某个角色查看该类别及其频道 一切正常之前。当我想让我的机器人看到文本频道,这样他就可以阅读并与消息交互时,我的问题就来了。除了Discord应用程序1之外,我的机器人没有任何额外的角色 到目前为止,我尝试了以下解决方案: 将Bot设置为管理员:此解决方案可行,但希望将其取消,因为我不知道是否建议将您的Bot设置为管理员,我认为应该有其他方法来解决此问题 将权限添加到类别,将我的机器人角色设置为允许他读

我的机器人有一个创建类别的命令,在它里面有一个文本和语音频道。创建类别时,我会覆盖权限,仅允许某个角色查看该类别及其频道

一切正常之前。当我想让我的机器人看到文本频道,这样他就可以阅读并与消息交互时,我的问题就来了。除了Discord应用程序1之外,我的机器人没有任何额外的角色

到目前为止,我尝试了以下解决方案:

  • 将Bot设置为管理员:此解决方案可行,但希望将其取消,因为我不知道是否建议将您的Bot设置为管理员,我认为应该有其他方法来解决此问题
  • 将权限添加到类别,将我的机器人角色设置为允许他读写消息,如下所示:
这会引发一个
discord.errors.problemed:403-problemed(错误代码:50001):缺少访问权限
错误,我不理解,因为我在oauth页面中设置了所有权限(请参见下图)。
我也试着给文本频道同样的权限,但是它抛出了同样的错误

我真正想要的是我的机器人在那个文本频道中阅读消息,因为如果机器人看不到频道,他不会响应任何命令

编辑: 以下是我创建类别和频道的方式:

async def prepare_game(ctx):
    guild = ctx.guild
    role = await guild.create_role(name=role_name)
    category = await guild.create_category('Game')
    await category.set_permissions(role, read_messages=True, send_messages=True, connect=True, speak=True)
    text_channel = await guild.create_text_channel('Board', category=category, sync_permissions=True)
    voice_channel = await guild.create_voice_channel('Room', category=category, sync_permissions=True)

然后在最后,我添加了
wait类别。设置权限(bot\u角色,read\u messages=True,send\u messages=True,connect=True)
行,其中
bot\u角色
是我的应用程序bot角色

尝试设置
ctx.guild.me
(bot用户本身)的权限覆盖

从中,
set_permissions
将接受角色或成员

例如:

async def prepare_游戏(ctx):
guild=ctx.guild
角色=等待公会。创建角色(名称=角色名称)
类别=等待公会。创建类别(“游戏”)
等待类别。设置权限(角色、读取消息=True、发送消息=True、连接=True、讲话=True)
等待类别。设置权限(ctx.guild.me,read\u messages=True,send\u messages=True,speak=True)
文本频道=等待公会。创建文本频道(“董事会”,类别=类别,同步权限=真)
语音频道=等待公会。创建语音频道(“房间”,类别=类别,同步权限=真)

您可以添加创建频道的方式吗?我用命令更新了问题我对代码没有任何问题吗?我的机器人可以看到频道。很好。我不知道
ctx.guild.me
指向了机器人,而不是触发命令的成员。谢谢
async def prepare_game(ctx):
    guild = ctx.guild
    role = await guild.create_role(name=role_name)
    category = await guild.create_category('Game')
    await category.set_permissions(role, read_messages=True, send_messages=True, connect=True, speak=True)
    text_channel = await guild.create_text_channel('Board', category=category, sync_permissions=True)
    voice_channel = await guild.create_voice_channel('Room', category=category, sync_permissions=True)