我的机器人有一个命令,它创建一个类别,在它里面,一个文本和声音通道。在创建类别时,我会覆盖只允许某个角色查看该类别及其通道的权限。
一切都好直到一切顺利。当我希望我的机器人看到文本通道时,我的问题就来了,这样他就可以阅读并与消息交互。除了不和谐的App之外,我的机器人没有任何额外的角色。
到目前为止,这是我尝试过的解决方案:
await category.set_permissions(bot_role, read_messages=True, send_messages=True, connect=True)这会引发一个discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access错误,因为我在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)最后,我添加了await category.set_permissions(bot_role, read_messages=True, send_messages=True, connect=True)行,bot_role是我的应用程序机器人角色
发布于 2021-04-28 12:52:18
尝试为ctx.guild.me设置权限覆盖( bot用户本身)。
在文档中,set_permissions将接受一个角色或一个成员。
例如:
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)
await category.set_permissions(ctx.guild.me, read_messages=True, send_messages=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)https://stackoverflow.com/questions/67297594
复制相似问题