跳转到内容

Teams Workflow Webhook

Teams Workflows 可创建“收到 Webhook 请求时发布到频道”的流程。本文依据 Microsoft Learn 资料整理,核验日期为 2026-09-08;未使用真实 Microsoft 365 租户执行验证。

  • Microsoft 365 租户允许使用 Teams Workflows。
  • 有目标团队或频道的相应权限。
  • 明确工作流由哪个账号拥有,并安排共同所有者以避免离职后失效。
  1. 在 Teams 的 Workflows 中选择 Webhook 触发的频道发布模板。
  2. 选择目标团队和频道,完成连接授权。
  3. 保存工作流并复制生成的 Webhook URL。
  4. 按工作流触发器期望的架构发送 Adaptive Card 消息体。
  5. 在工作流运行历史中检查每一步结果。
字段必需说明
WORKFLOW_WEBHOOK_URL工作流生成的完整触发 URL,视为密钥
TEAM_ID / CHANNEL_ID配置时通常在工作流动作中固定,不直接放进请求

JavaScript 示例需要 Node.js 20 或更新版本;Python 示例需要安装 requests

下面是常见的 Adaptive Card 消息结构;具体字段必须与所选工作流模板的触发器定义一致:

Terminal window
curl -X POST "$WORKFLOW_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '{"type":"message","attachments":[{"contentType":"application/vnd.microsoft.card.adaptive","contentUrl":null,"content":{"$schema":"http://adaptivecards.io/schemas/adaptive-card.json","type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","text":"通知渠道连通性测试","wrap":true}]}}]}'

检查 HTTP 响应、工作流运行历史和目标频道消息。Webhook 受理成功但流程后续动作失败时,应以运行历史中的具体步骤为准。

  • Webhook URL 只保存在服务端密钥存储中。
  • 为工作流配置共同所有者,并定期检查连接身份是否仍有效。
  • 限制工作流动作的频道和权限,不在卡片中发送敏感数据。

工作流未触发:检查 URL 是否完整、请求方法和 JSON 类型是否匹配。

触发成功但频道无消息:查看运行历史中的发布动作、连接授权和目标频道。

所有者离职后失效:增加共同所有者并更新连接身份。