Как хранить id сообщений в бд
есть код
async def callback(self, interaction: discord.Interaction):
name = self.children[0].value
age = self.children[1].value
nickname = self.children[2].value
youtube = self.children[3].value
twitch = self.children[4].value
uzer = interaction.user.mention
channel_id = 1219092823480074251
channel = interaction.guild.get_channel(channel_id)
formcount = await channel.history(limit=None).flatten()
form_count = sum(1 for message in formcount if message.embeds)
embed = discord.Embed(title=f"Заявка № ``{form_count}``",
description=f"**Как вас зовут?**\n**> Ваш ответ: — ``{name}``**\n**Сколько вам лет?**\n**> Ваш ответ: — ``{age}``**\n**Ваш ник**\n**> Ваш ответ: — ``{nickname}``**\n**Youtube**\n**> Ваш ответ: — ``{youtube}``**\n**Twitch/YouTube**\n**> Ваш ответ: — ``{twitch}``**",
colour=0x02f71f,
)
embed.set_footer(text=f"Ваша заявка отправлена, ожидайте. ID: {interaction.user.id}")
embed.set_author(name="1HP", icon_url="https://files.catbox.moe/qla4at.png")
cursor.execute('''
INSERT INTO forms (message_id, user_id, nickname, uzer)
VALUES (?, ?, ?, ?)
''', (channel.last_message_id, interaction.user.id, nickname, uzer))
conn.commit()
await interaction.user.send(embed=embed)
await interaction.response.send_message(embed=embed, ephemeral= True)
await channel.send(uzer, embed=embed, view=FormButtonReaction(interaction.user.id, nickname, uzer))
он работает но в бд сохраняется какой то левый id`шник для message_id
Ответы (1 шт):
Автор решения: q r t s
→ Ссылка
Вы должны сохранять сообщение после его отправки. Только так можно получить ID сообщения:
await interaction.user.send(embed=embed)
await interaction.response.send_message(embed=embed, ephemeral= True)
message = await channel.send(uzer, embed=embed, view=FormButtonReaction(interaction.user.id, nickname, uzer))
cursor.execute('''
INSERT INTO forms (message_id, user_id, nickname, uzer)
VALUES (?, ?, ?, ?)
''', (message.id, interaction.user.id, nickname, uzer))
conn.commit()