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

Discord.py中使用interaction.defer()后follow-up消息ephemeral不生效问题咨询

在Discord.py中defer后发送临时跟进消息无效的原因及解决办法

这不是你的操作错误,而是Discord API本身的规则限制——交互的初始响应(包括defer)的可见性会锁定后续所有跟进消息的可见性,中途无法修改。

问题根源

当你调用interaction.defer()时,如果没有指定ephemeral=True,Discord会默认将这个初始延迟响应标记为公开可见。后续调用followup.send()时,哪怕你设置了ephemeral=True,也会被Discord API忽略,因为跟进消息必须继承初始响应的可见性。

解决办法

在调用defer的时候就明确指定ephemeral=True,后续的跟进消息会自动继承这个属性,无需重复设置(当然重复设置也不会有问题):

# 正确写法:defer时指定临时属性
await interaction.defer(ephemeral=True)
# 执行耗时操作,比如数据库查询、API调用等
await interaction.followup.send("这条消息会是临时的")

如果你的场景中需要根据后续逻辑决定是否发送临时消息,那很遗憾,Discord API不支持这种中途切换的操作——你必须在初始defer时就确定好可见性。

内容的提问来源于stack exchange,提问作者Sabith Pk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:24:51