DiscordAPIError:缺少权限

Posted

技术标签:

【中文标题】DiscordAPIError:缺少权限【英文标题】:DiscordAPIError: Missing Permissions 【发布时间】:2021-01-01 05:50:08 【问题描述】:

我正在尝试编写一个发送消息并为您提供角色的命令。该机器人具有最高角色,具有管理角色权限,并试图将角色添加到具有最低角色的普通公会成员。每次执行命令时都会出现此错误。我还查看了此页面 https://discordjs.guide/popular-topics/permissions-extended.html#missing-permissions 并检查了所有内容,但我不断收到错误消息。

DiscordAPIError: Missing Permissions
    at RequestHandler.execute (C:\Users\perli\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

另外,这是我的代码:

if (command === 'participo') 
 const author = message.author;

 message.reply(
  `te has inscrito correctamente al torneo\nRecuerda unirte a este canal para participar https://discord.gg/4jue4uZ`
 );

 client.channels.cache
  .get('754701028888281168')
  .send(`<@$author.id> se ha inscrito al torneo`);

 const role = message.guild.roles.cache.array(
  (role) => role.id === '754748890300940348'
 );
 message.member.roles
  .add(role)
  .then(console.log)
  .catch(console.error);

【问题讨论】:

【参考方案1】:

正如错误已经提到的Missing Permissions,这意味着您的机器人没有权限为用户提供高于他的角色,或者根本没有MANAGE_ROLES 权限。如果您希望您的机器人成功分配角色,请确保角色堆栈来自以下内容:

- UnreachableRole
- Bot Role
- Role 1
- Role 2
....
- Role 10

到这里:

- Bot Role
- UnreachableRole
- Role 1
- Role 2
....
- Role 10

机器人无法到达UnreachableRole,因为它的位置更高。要解决此问题,请将 bot 角色移动到您想要赋予的角色更高的位置。

还要确保您的机器人具有MANAGE_ROLES 权限。

【讨论】:

他说bot的角色最高 天啊,这必须是对添加角色错误的 1 票。我多年来一直与 DISCORD 合作,不知道这些角色有优先权,我可以将一个角色拖到另一个之上。我的天啊。我已经为此烦恼了一个星期!该角色具有管理员权限,但它尝试赋予其上方一行的角色。

以上是关于DiscordAPIError:缺少权限的主要内容,如果未能解决你的问题,请参考以下文章

DiscordAPIError:缺少权限 - 机器人崩溃而不是给出错误消息

机器人没有分配角色。我收到错误缺少权限

如何修复 DiscordAPIError:未知成员?

DiscordAPIError:无效的表单正文 - Discord 斜杠命令

DiscordAPIError:无效的表单正文

DiscordAPIError:无法使用 Discord 嵌入发送空消息