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

Adaptive Card中action.http使用求助:POST请求不被支持

问题解析与解决方案

这个问题的核心是:Action.Http并不是Adaptive Card核心Schema的标准动作类型,它是微软部分生态平台(比如Teams机器人、Power Automate)针对Adaptive Card做的扩展功能,所以你在官方通用Schema里只能看到Submit、OpenURL、ShowCard这三个基础动作。下面分情况给你具体指导:

1. 如果你在支持Action.Http的平台使用(比如Teams机器人)

如果你的Adaptive Card是运行在Teams机器人、Power Automate这类支持扩展动作的环境中,Action.Http是可以正常使用的。这里给你一个POST请求的示例:

{
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextInput",
      "id": "userInput",
      "placeholder": "输入需要提交的内容"
    }
  ],
  "actions": [
    {
      "type": "Action.Http",
      "title": "提交数据",
      "method": "POST",
      "url": "https://your-api-domain.com/api/submit",
      // 注意:body需要是字符串化的JSON,不能直接写对象
      "body": "{\"userInput\": \"{{userInput.value}}\"}",
      "headers": [
        {
          "name": "Content-Type",
          "value": "application/json"
        }
      ]
    }
  ]
}

使用时需要注意:

  • body必须是字符串格式的JSON,不能直接传入JSON对象,否则平台会解析失败
  • 确保你的API端点可以被当前平台访问(比如Teams环境下不能用本地localhost地址,需要公网可访问)
  • 部分平台会对请求做签名或权限校验,需要提前配置好相关权限

2. 如果在不支持Action.Http的平台使用(比如自定义Web应用、通用客户端)

如果你的Adaptive Card是在自定义应用、非微软扩展平台中使用,那只能用标准的Action.Submit来间接实现POST请求:

第一步:在Adaptive Card中定义Submit动作,把需要提交的数据放在data字段里

{
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextInput",
      "id": "userInput",
      "placeholder": "输入需要提交的内容"
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "提交数据",
      "data": {
        "actionType": "submitToApi",
        "payload": {
          "userInput": "{{userInput.value}}"
        }
      }
    }
  ]
}

第二步:在承载Adaptive Card的应用中监听Submit事件,手动发起POST请求

以JavaScript为例,你可以通过Adaptive Cards的SDK监听onAction事件:

const adaptiveCard = new AdaptiveCards.AdaptiveCard();
adaptiveCard.parse(cardJson);

// 监听Submit动作
adaptiveCard.onAction = (action) => {
  if (action.data.actionType === "submitToApi") {
    // 发起POST请求
    fetch("https://your-api-domain.com/api/submit", {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify(action.data.payload)
    })
    .then(response => response.json())
    .then(data => {
      console.log("提交成功:", data);
      // 这里可以添加成功后的UI反馈
    })
    .catch(error => {
      console.error("提交失败:", error);
    });
  }
};

// 把卡片渲染到页面
document.body.appendChild(adaptiveCard.render());

额外提醒

  • 如果你不确定当前平台是否支持Action.Http,可以查看该平台的Adaptive Card相关文档,或者直接测试动作是否生效
  • 核心Schema的动作是所有支持Adaptive Card的平台都能兼容的,而扩展动作只在特定平台可用,所以如果需要跨平台兼容,优先使用标准动作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:00:55