discord.py выдача ролей по реакции

Написал классическую выдачу роли по реакции. Мной были перепробованы очень многие варианты, которые, к сожалению, не помогли. Самое необъяснимое здесь то, что никакой ошибки нет, но роли не выдаёт. Все права были выданы. Код:

#выдача ролей по реакциям
@client.event
async def on_raw_reaction_add(payload):
    messageid = payload.message_id
    if messageid == 979979550899454022: #id сообщения
        if payload.emoji == '?':
            role = discord.utils.get(payload.member.guild.roles, id=976819294623109140) #id роли
            await payload.member.add_roles(role, reason='новоприбывший нажал на реакцию')

Ответы (1 шт):

Автор решения: Corrygan

Ошибка в этих строках

messageid = payload.channel_id
if messageid == 979979550899454022: #id сообщения

payload.channel_id - это канал, в котором реагируется эмодзи. Вы же каналу придаёте id сообщения, измените код на:

messageid = payload.message_id
if messageid == 979979550899454022:
→ Ссылка