You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:05:17