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

构建Microsoft Teams动作命令型消息扩展的技术咨询

如何实现Microsoft Teams动作命令型消息扩展

动作命令型消息扩展的工作机制

动作命令(Action Commands)和你当前创建的搜索类命令不同,核心逻辑是触发后唤起任务模块(Task Module),让用户完成输入/选择操作后,再将处理结果返回至Teams场景(聊天、频道或消息框)。它的触发入口可覆盖消息右键菜单、聊天/频道的「+」号菜单、命令框,而非仅局限在消息框内。

基于Teams Toolkit创建的Hello World项目修改步骤

1. 修改Manifest配置文件

打开项目中的manifest.json,找到composeExtensions节点下的commands数组,将默认的query类型命令替换为action类型命令,配置触发上下文和任务模块信息:

"composeExtensions": [
  {
    "botId": "<你的Bot ID>", // 保留原有Bot ID不变
    "commands": [
      {
        "id": "customActionCommand",
        "type": "action",
        "title": "我的动作命令",
        "description": "触发后唤起任务模块的示例",
        "context": ["message", "compose", "commandBox"], // 指定触发场景:消息右键、消息框、命令框
        "taskInfo": {
          "title": "任务模块标题",
          "width": "medium",
          "height": "medium",
          "url": "https://<你的部署域名>/taskmodule.html" // 若用网页作为任务模块填地址;用自适应卡片可后续通过Bot返回
        }
      }
    ]
  }
]

2. 处理Bot的任务模块事件

动作命令触发后,Teams会向Bot发送两类核心事件,需在Bot代码中实现处理逻辑:

处理task/fetch事件(唤起任务模块)

用户触发动作命令时,Bot会收到该事件,需返回任务模块定义(可选自适应卡片或外部网页):

// 以Node.js Bot Framework为例
this.onTeamsMessagingExtensionFetchTask(async (context, action) => {
  // 定义自适应卡片作为任务模块内容
  const adaptiveCard = {
    type: "AdaptiveCard",
    version: "1.0",
    body: [
      { type: "TextBlock", text: "请输入需要处理的内容", size: "medium" },
      { type: "Input.Text", id: "userContent", placeholder: "在这里输入文本", multiline: true }
    ],
    actions: [{ type: "Action.Submit", title: "提交内容" }]
  };

  return {
    task: {
      type: "continue",
      value: {
        card: adaptiveCard,
        height: 300,
        width: 500,
        title: "动作命令任务模块"
      }
    }
  };
});

处理task/submit事件(提交任务模块数据)

用户提交任务模块内容后,Bot收到该事件,处理数据后返回结果到Teams:

this.onTeamsMessagingExtensionSubmitAction(async (context, action) => {
  const userInput = action.data.userContent;
  // 构造返回的自适应卡片结果
  const resultCard = {
    contentType: "application/vnd.microsoft.card.adaptive",
    content: {
      type: "AdaptiveCard",
      version: "1.0",
      body: [
        { type: "TextBlock", text: "动作命令处理结果", weight: "bolder", size: "large" },
        { type: "TextBlock", text: `你提交的内容:\n${userInput}` }
      ]
    }
  };

  // 将结果返回至消息框或聊天场景
  return {
    composeExtension: {
      type: "result",
      attachmentLayout: "list",
      attachments: [resultCard]
    }
  };
});

3. 重新部署测试

使用Teams Toolkit重新打包Manifest并部署到Teams,之后可在以下场景触发命令:

  • 聊天窗口右键消息 → 选择你的动作命令
  • 消息框下方点击「+」号 → 找到你的动作命令
  • 命令框输入命令名称 → 触发动作命令

测试任务模块的唤起和提交流程,验证功能是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 19:28:20