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

调用microsoftTeams.tasks.submitTask后如何向Teams输入框发送Adaptive Card

解决方案

你当前使用onTeamsTaskModuleSubmit返回TaskModuleResponse的逻辑是处理普通Bot触发的Task Module提交的流程,而你开发的是撰写上下文的消息扩展操作,需要返回适配消息扩展的响应结构,才能把Adaptive Card直接插入到用户的聊天输入框中。

具体实现步骤

  • 不要返回TaskModuleResponse对象,改为返回ComposeExtensionResponse类型的响应
  • 构造你需要投放的Adaptive Card附件,contentType指定为application/vnd.microsoft.card.adaptive
  • 将附件嵌套到响应结构的composeExtension.result字段中,attachmentLayout设置为list即可

代码示例(Node.js Bot Framework SDK)

async handleTeamsTaskModuleSubmit(context, taskModuleRequest) {
    // 1. 接收task module提交的用户数据
    const userData = taskModuleRequest.data;

    // 2. 构造业务需要的Adaptive Card
    const customerCard = {
        "type": "AdaptiveCard",
        "version": "1.4",
        "body": [
            {
                "type": "TextBlock",
                "text": `新建客户信息:${userData.customerName}`,
                "weight": "Bolder",
                "size": "Large"
            },
            // 其他你需要展示的卡片字段
        ]
    };

    // 3. 返回消息扩展响应,Teams会自动将卡片插入聊天输入框
    return {
        composeExtension: {
            type: "result",
            attachmentLayout: "list",
            attachments: [
                {
                    contentType: "application/vnd.microsoft.card.adaptive",
                    content: customerCard
                }
            ]
        }
    };
}

注意事项

你提供的应用清单配置已经满足要求,commands.context包含compose值,无需额外修改清单,也不需要调用额外的发消息接口,返回上述结构后Teams会自动完成卡片投放逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:54:04