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

如何自定义Microsoft Teams机器人Adaptive Card不同按钮的响应确认文本

Microsoft Teams Adaptive Card 自定义按钮确认消息实现方案

核心思路

Teams平台默认的"你的响应已发送至应用"提示是系统级自动生成的,无法直接修改文本,但可以通过以下两种方式实现自定义确认效果:

方案一:禁用默认提示+主动发送自定义消息

通过给Action.Submit按钮添加Teams专属配置,关闭系统默认提示,再由机器人根据按钮类型返回对应自定义消息:

  • 在Adaptive Card的按钮配置中,添加msteams属性并设置suppressNotification: true,禁用默认提示
  • 机器人接收按钮提交的请求后,根据提交的data参数判断按钮类型,发送对应的自定义确认文本或卡片

示例Card配置(JSON):

{
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [{"type": "TextBlock", "text": "请选择操作"}],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "审批通过",
      "data": {"action": "approve"},
      "msteams": {"suppressNotification": true}
    },
    {
      "type": "Action.Submit",
      "title": "审批拒绝",
      "data": {"action": "reject"},
      "msteams": {"suppressNotification": true}
    }
  ]
}

机器人后端处理示例(C#):

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    if (turnContext.Activity.Value != null)
    {
        var submitData = JsonConvert.DeserializeObject<dynamic>(turnContext.Activity.Value.ToString());
        string action = submitData.action;
        string customMsg = action switch
        {
            "approve" => "审批已通过,后续流程将启动",
            "reject" => "审批已拒绝,请告知提交人原因",
            _ => "操作已完成"
        };
        await turnContext.SendActivityAsync(MessageFactory.Text(customMsg), cancellationToken);
    }
}

方案二:使用Teams专属Action.Execute动作

Action.Execute是Teams独有的交互动作,点击后直接触发机器人逻辑,默认不会弹出系统提示,适合需要更复杂交互的场景:

  • 将按钮类型设为Action.Execute,通过data传递按钮标识
  • 机器人后端根据data中的标识返回对应自定义确认消息

注意事项

  • suppressNotification仅对Action.Submit有效,需确保Adaptive Card版本为1.0及以上
  • 移动端Teams对部分专属属性的支持可能存在差异,建议测试验证
  • 自定义消息支持文本、Adaptive Card等多种形式,可根据需求灵活设计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:49