Почему я не могу добавить роль реакции для участника?

Я хочу дать участнику роль, когда он добавит реакцию

Я пробовал сделать это вот так

bot.py

import discord import config TOKEN = config.settings[‘token’] intents = discord.Intents.default() intents.reactions = True client = discord.Client(intents=intents) @client.event async def on_raw_reaction_add(payload): channel = client.get_channel(config.channels[‘my_channel’]) message = await channel.fetch_message(payload.message_id) member = discord.utils.get(message.guild.roles, id = payload.user_id) if payload.emoji.name == ’emoji_name’: role = discord.utils.get(message.guild.roles, name = ‘role_name’) elif payload.emoji.name == ’emoji_name_2′: role = discord.utils.get(message.guild.roles, name = ‘role_name_2’) await member.add_roles(role)

config.py

settings = { ‘token’: ‘my_token’, ‘bot’: ‘bot_name’, ‘id’: bot_id, ‘prefix’: ‘-‘, } roles = { ‘role_name’: role_id, ‘role_name_2’: role_id_2, } channels = { ‘channel_name’: channel_id, }

также я пытался получить канал другим способом

async def on_raw_reaction_add(self, payload): channel = self.get_channel(payload.channel_id)

но это тоже не сработало

потому что у вас не включено intents.members   —  person demon    schedule 28.12.2020

Я добавил intents.members, но он по-прежнему не работает   —  person demon    schedule 28.12.2020

вы включили их на портале разработчика?   —  person demon    schedule 28.12.2020

Да, я их включил   —  person demon    schedule 28.12.2020

Вероятно, вы ошиблись, проверяя имена смайлов. Какую строку вы используете для ’emoji_name’?   —  person demon    schedule 28.12.2020

Названия смайликов — league и stardew, это имена взяты из Discord.   —  person demon    schedule 28.12.2020

Проверьте это: stackoverflow.com/a/65466198/11146632 дайте мне знать, если это все еще не работает.   —  person demon    schedule 28.12.2020

Проблема в том, что я создал свои собственные эмодзи и не знаю, как скопировать их в код. Итак, я хотел получить смайлы по их имени   —  person demon    schedule 28.12.2020

Можете ли вы проверить с помощью других встроенных смайлов? Тогда мы точно узнаем, что это проблема с именами эмодзи.   —  person demon    schedule 28.12.2020

Я попытался сделать, как показано в ссылке, которую вы мне дали, со встроенными смайликами, но это все равно не работает   —  person demon    schedule 28.12.2020

Попробуйте разбить это на части. Вы уверены, что получаете канал? Сообщение? Член? Роль? Распечатайте, чтобы увидеть, что дает вам бот, что значительно упрощает устранение неполадок   —  person demon    schedule 28.12.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!