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

如何在Microsoft Bot Composer中动态创建自适应卡片并轮播展示

实现Bot Composer动态生成自适应卡片轮播的正确方法

前提准备

确保API返回的对象数组已正确存储到Bot的可访问变量中,比如通过「设置属性」动作将HTTP请求结果(turn.result)赋值给user.orderItems变量。

动态轮播卡片的正确实现

在「发送活动」动作中选择「自适应卡片」类型,使用以下JSON结构,通过$data绑定实现数组遍历与卡片动态生成:

{
  "type": "message",
  "attachmentLayout": "carousel",
  "attachments": [
    {
      "type": "AdaptiveCard",
      "$data": "${user.orderItems}",
      "body": [
        {
          "type": "TextBlock",
          "text": "订单号: ${SdDoc}",
          "size": "Large",
          "weight": "Bolder"
        },
        {
          "type": "TextBlock",
          "text": "行项目号: ${ItmNumber}"
        },
        {
          "type": "TextBlock",
          "text": "物料编码: ${Material}"
        }
      ],
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.4"
    }
  ]
}

核心逻辑说明

  • attachmentLayout: "carousel" 指定消息使用轮播布局
  • $data: "${user.orderItems}" 将卡片模板绑定到目标数组,Composer会自动遍历数组中的每个对象,生成对应数量的卡片
  • 卡片内部直接通过${属性名}引用数组对象的字段(如${SdDoc}),无需额外循环语法

常见语法错误排查

  • 变量路径错误:确认$data绑定的变量名与实际存储数组的变量一致(比如是user.orderItems还是turn.result)
  • 自适应卡片版本问题:使用1.4及以上版本,低版本可能不支持$data动态绑定
  • 表达式语法错误:所有变量引用必须用${}包裹,避免遗漏或多余符号
  • 空数组处理:可添加条件判断(如length(user.orderItems) > 0),避免空数组导致的渲染异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:15:49