Zephyrus
Zephyrus

Reputation: 45

Discord.py 2.0 interactions how to add reaction

@bot.tree.command()
@app_commands.describe(question="Give a title")
async def poll(interaction: discord.Interaction, question: str, choice_a: str = None, choice_b: str = None,
                 choice_c: str = None):
    emb = discord.Embed(title=f"{choice_a}\n{choice_b}\n{choice_c}\n",
                        type="rich")

    message = await interaction.response.send_message(f"**{question}**", embed=emb)

    await message.add_reaction('👍')

Hello this is my code i want to add reaction but this doesn't working.

Also i tried:

await interaction.add_reaction('👍')
await interaction.message.add_reaction('👍')

Upvotes: 0

Views: 1312

Answers (1)

Raymus
Raymus

Reputation: 1305

await interaction.response.send_message() always returns None

You can get around this by using await interaction.channel.send() which returns discord.Message and therefore you are able to add_reaction()

    message = await interaction.channel.send(f"**{question}**", embed=emb)

    await message.add_reaction('👍')

Late, but there is a better way of doing this. Using interaction.original_response we can get the interactionMessage object and add reaction from there.

await interaction.response.send_message(f"**{question}**", embed=emb)
msg = await interaction.original_response()
await msg.add_reaction('👍')

Upvotes: 1

Related Questions