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

如何使用Discord.NET将交互响应记录到变量中?

获取Discord交互响应消息对象的解决方案

问题背景

调用Context.Interaction.RespondAsync(embed: Completed.Build())时,由于该方法返回async Task而非具体的消息类型实例,无法直接将响应消息赋值给变量。尝试直接访问返回值的方法/属性、强制类型转换等操作均无效。

正确实现方式

要获取交互响应的消息对象,需先完成响应发送,再通过GetOriginalResponseAsync()方法获取对应实例:

// 发送交互响应
await Context.Interaction.RespondAsync(embed: Completed.Build());
// 获取已发送的响应消息
var msg = await Context.Interaction.GetOriginalResponseAsync();

补充说明

  1. 调用顺序:必须先执行RespondAsync()完成交互响应,再调用GetOriginalResponseAsync(),否则会触发交互未响应的错误。
  2. 后续消息处理:如果需要发送后续跟进消息并直接获取实例,可使用FollowupAsync(),该方法直接返回消息类型的Task对象:
var followupMsg = await Context.Interaction.FollowupAsync(embed: AnotherEmbed.Build());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:07:01