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

Adaptive Card模板传变量POST至Teams无消息及foreach报错的解决咨询

问题解决:Adaptive Card发送Teams无消息+Foreach空数组错误

1. 修复Foreach空数组错误

错误提示@triggerOutputs()?['body']?['attachments']为Null,核心原因是绑定的遍历源不存在或不是有效数组:

  • 若仅发送单张卡片:直接移除Send_each_adaptive_card的foreach循环,无需遍历操作。
  • 若需批量发送多张卡片:确保遍历源是有效数组,比如替换为@body()['attachments'](若请求体包含该数组),或工作流中预先定义的数组变量。

2. 正确的Adaptive Card变量传递与POST请求格式

Teams的Incoming Webhook要求请求体必须包含attachments数组,Adaptive Card需嵌套在该数组内,同时要完成变量替换,以下是两种可行方案:

方案一:先渲染模板再组装请求体

  1. 添加Compose动作,输入Adaptive Card模板,用工作流表达式替换变量(将原模板的${description}替换为实际变量来源):
    {
      "type": "AdaptiveCard",
      "body": [
        {
          "type": "TextBlock",
          "text": "@{triggerBody()['description']}",
          "wrap": true
        }
      ],
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.5"
    }
    
  2. 在发送Teams请求的动作中,构造符合要求的请求体:
    {
      "attachments": [
        {
          "contentType": "application/vnd.microsoft.card.adaptive",
          "content": @{outputs('Compose')}
        }
      ]
    }
    

方案二:直接内联构造完整请求体

无需单独模板,直接在请求体中完成变量替换和格式组装:

{
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.adaptive",
      "content": {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "TextBlock",
            "text": "@{triggerBody()['description']}",
            "wrap": true
          }
        ],
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5"
      }
    }
  ]
}

3. 关键注意事项

  • 必须确保请求头设置Content-Type: application/json,否则Teams无法正确解析请求体。
  • 测试时可先用Postman手动发送构造好的完整请求(替换变量为实际值),确认能收到消息后再迁移到工作流中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:42:07