我的 discord 机器人给我权限错误

My discord bot is giving me permission errors

问题是我的机器人有管理员权限,但我不知道我是如何或为什么会出现权限错误的。当机器人应该为加入成员提供角色时,会弹出此错误。

@bot.event
async def on_member_join(member):
    welcome_channel = discord.utils.get(member.guild.text_channels, name='welcome_channel')
    guild=member.guild
    if guild.member_count % 10 ==1: #to find the last digit of the member count to see if st or nd or rd or th should be placed at the end
        embed=discord.Embed()
        embed2=discord.Embed()
        name=(member)
        embed.set_author(name=f"{random.choice(greetings)} {name}. You are the {guild.member_count}st member", icon_url=member.avatar_url)
        await welcome_channel.send(embed=embed)
        embed2.set_thumbnail(url=member.avatar_url)
        await welcome_channel.send(f"{random.choice(greetings)} {member.mention}. You are the {guild.member_count}st member", embed=embed2)
    

我得到的确切错误是:

Traceback (most recent call last):
  File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Lenovo\Desktop\Python\VSC\Discord Bot\Main backup.py", line 53, in on_message
    await message.author.add_roles(role)
  File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\member.py", line 777, in add_roles
    await req(guild_id, user_id, role.id, reason=reason)
  File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\http.py", line 248, in request
    raise Forbidden(r, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

如 Traceback 中所述,错误可能不是来自 on_member_join(),而是来自 on_message() 事件

您应该检查服务器角色的顺序。如果机器人的角色低于您要授予用户的角色,那么您的机器人没有权限这样做(如 here 所述)

示例: