如何在discord.py中编辑交互Followup消息?代码报错求助
解决discord.py编辑临时Followup消息的问题
错误原因
你调用interaction.followup.edit_message("Something")时,错误地将修改内容直接作为第一个参数传入,但这个方法的第一个参数需要接收要编辑的消息ID(snowflake格式)或已发送的Followup消息对象,而非修改后的文本,这才触发了"不是snowflake"的格式错误。
正确实现方式
方法1:保存Followup消息对象直接编辑
发送临时Followup消息时,保存返回的消息对象,后续直接调用该对象的edit()方法修改内容:
# 按钮回调函数示例 async def button_callback(interaction: discord.Interaction): # 发送临时followup消息并保存对象 followup_msg = await interaction.followup.send("Hi", ephemeral=True) # 编辑这条消息 await followup_msg.edit(content="Something")
方法2:通过消息ID调用edit_message
如果已保存目标消息的ID,可指定message_id参数进行编辑:
# 假设msg_id是已保存的followup消息ID await interaction.followup.edit_message(message_id=msg_id, content="Something")
额外注意事项
- 临时消息(
ephemeral=True)仅能被触发交互的用户查看,编辑后仍保持临时状态。 - 确保编辑操作在交互生命周期内执行,且机器人拥有编辑消息的权限。
内容的提问来源于stack exchange,提问作者ArtyoM
相关产品推荐
相关产品推荐

