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

技术求助:Microsoft Teams无法显示MessageCard按钮,Outlook可正常显示

排查Teams中MessageCard按钮不显示的问题

嗨,我来帮你解决这个困扰——Teams里MessageCard按钮不显示但Outlook正常的问题,结合我之前踩过的坑,整理了几个关键排查点和修复方案:

1. 补全ActionCard的name属性

你的JSON里ActionCard的name是空字符串:

{ "@type": "ActionCard", "name": "", ... }

Teams对这个属性有严格要求,必须填非空值,否则会直接隐藏整个操作区域;而Outlook对空值兼容性更好,所以能正常显示。建议给它加个明确的名称,比如:

{ "@type": "ActionCard", "name": "添加备注", ... }

2. 检查HttpPOST的targetURL是否合规

你的JSON里target内容被截断了,Teams对这个URL的要求比Outlook严格:

  • 必须是完整的HTTPS链接(Teams不支持HTTP)
  • URL不能包含未编码的特殊字符
  • 确保目标服务器能接收Teams的POST请求(比如没有跨域限制,支持Teams的请求头)
    如果URL格式不符合要求,Teams会直接隐藏按钮,而Outlook可能会尝试兼容。

3. 修正TextInput的isMultiline类型

你设置的isMultiline是字符串"true",但MessageCard规范里这个属性应该是布尔值(不带引号的true):

{ "@type": "TextInput", "id": "comment", "title": "Enter your comment", "isMultiline": true }

Outlook能识别字符串类型的布尔值,但Teams对类型校验更严格,这可能导致ActionCard无法渲染,进而隐藏按钮。

4. 考虑切换到Adaptive Cards

Teams现在更推荐使用Adaptive Cards而非传统的MessageCard,因为MessageCard在Teams中的功能支持已经逐渐受限。如果上面的修复都无效,建议转成Adaptive Cards格式,兼容性和功能都会更好。给你个参考示例:

{
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "size": "Large",
      "weight": "Bolder",
      "text": "System Alert"
    },
    {
      "type": "TextBlock",
      "text": "Network Error"
    },
    {
      "type": "TextInput",
      "id": "comment",
      "placeholder": "Enter your comment",
      "isMultiline": true
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "OK",
      "url": "https://你的目标链接.com"
    }
  ]
}

5. 用官方工具测试渲染

你可以用微软官方的卡片测试工具来预览卡片在Teams和Outlook中的效果,快速定位格式问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:17:15