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

无法通过Adaptive Card调用MS Teams BotBuilder机器人的Task Module

解决Teams机器人Task/Fetch按钮无响应问题

针对你遇到的Task Module按钮无法触发handleTeamsTaskModuleFetch()方法的问题,可按以下步骤排查解决:

1. 确认BotBuilder SDK版本兼容性

TeamsActivityHandler是BotBuilder v4 SDK的特性,v1.3版本的BotBuilder(非常老旧)完全不支持Teams Task Module功能。你需要立即将BotBuilder SDK升级到v4.x的最新稳定版本(推荐v4.18及以上),并确保项目中所有相关依赖(如botbuilder、botbuilder-teams)都同步更新。

2. 修正Adaptive Card配置

你的卡片代码存在两处潜在问题:

  • 需在卡片根级别添加Teams扩展配置,明确指定卡片适配Teams环境
  • Action.Submit的data字段需补充一个非msteams的自定义标识,避免Teams客户端忽略请求

修改后的卡片JSON示例:

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.3",
  "msteams": {
    "width": "full",
    "height": "medium"
  },
  "body": [
      {
          "type": "TextBlock",
          "text": "TaskModule Card",
          "wrap": true
      },
      {
          "type": "ActionSet",
          "actions": [
              {
                  "type": "Action.Submit",
                  "title": "Invoke",
                  "data": {
                    "action": "taskFetch",
                    "msteams": {
                      "type": "task/fetch"
                    }
                  }
              }
          ]
      }
  ]
}

3. 检查机器人端点与网络连通性

按钮点击后无灰色动画,说明Teams客户端未成功发起请求到你的后端:

  • 确保机器人的消息端点(如/api/messages)可被公网访问,无防火墙、反向代理或SSL证书问题
  • 使用工具模拟Teams的Invoke请求,验证端点能正常接收并响应

4. 验证Handler注册逻辑

确保你的机器人类正确继承TeamsActivityHandler,且未覆盖核心Invoke处理逻辑:

class TeamsBot extends TeamsActivityHandler {
    constructor() {
        super();
        // 若需自定义Invoke处理,必须调用super.onInvoke(context),避免拦截Task Module请求
    }

    async handleTeamsTaskModuleFetch(context, taskModuleRequest) {
        // 你的Task Module处理逻辑
        return {
            task: {
                type: "continue",
                value: {
                    title: "Task Module",
                    height: 500,
                    width: 600,
                    url: "https://your-task-module-url"
                }
            }
        };
    }
}

5. 更新官方示例依赖

你提到的官方示例存在同样问题,大概率是示例的依赖版本过时。进入示例项目目录,执行以下命令更新依赖:

npm install botbuilder@latest botbuilder-teams@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:55:18