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

MS Teams调用Graph API发送自适应卡片顶部空白问题咨询

MS Teams调用Graph API发送自适应卡片顶部空白问题

问题现象

在MS Teams应用中调用Graph API向用户发送自适应卡片时,卡片顶部存在多余空白区域,效果如下:
自适应卡片顶部空白效果示意图

当前请求结构

当前传递给接口的请求payload结构如下:

{
    "attachments": [{
        "id": "",
        "contentType": "application/vnd.microsoft.card.adaptive",
        "contentUrl": null,
        "content": "经JSON.stringify序列化的自适应卡片内容",
        "name": null,
        "thumbnailUrl": null
    }],
    "body": {
        "contentType": "html",
        "content": ""
    }
}

已尝试过为主请求对象设置subject属性、为attachment节点设置name属性,均未解决空白问题,需要实现两个目标:

  • 支持自定义头部区域显示文本
  • 若无法自定义文本,完全移除顶部空白区域

解决方案

该空白区域是Teams为消息正文(即payload中的body字段)预留的渲染空间,只要保留空的body节点,哪怕内容为空,客户端也会预留对应高度导致出现空白,对应两个需求的实现方式如下:

需求1:在头部区域显示自定义文本

直接给body.content字段传入需要展示的文本或HTML格式内容即可,该部分内容会直接渲染在自适应卡片上方的头部区域,不会产生多余空白。
示例payload:

{
    "attachments": [{
        "id": "",
        "contentType": "application/vnd.microsoft.card.adaptive",
        "contentUrl": null,
        "content": "经JSON.stringify序列化的自适应卡片内容",
        "name": null,
        "thumbnailUrl": null
    }],
    "body": {
        "contentType": "html",
        "content": "<p>需要展示在卡片顶部的自定义提示文本</p>"
    }
}

注意:不要通过设置请求根节点的subject属性、或attachment节点的name属性实现头部文本展示,这两个字段不会渲染在卡片上方的正文区域,部分Teams客户端甚至不会展示这两个字段的内容。

需求2:移除顶部空白区域

直接删除请求payload中的整个body节点即可,不要传空对象、空字符串内容的body字段,接口会识别到当前消息仅包含自适应卡片附件,不会预留正文渲染空间,顶部空白会完全消失。
修正后的无空白payload示例:

{
    "attachments": [{
        "id": "",
        "contentType": "application/vnd.microsoft.card.adaptive",
        "contentUrl": null,
        "content": "经JSON.stringify序列化的自适应卡片内容",
        "name": null,
        "thumbnailUrl": null
    }]
}

注意:不要尝试将body.content设为null、或修改contentType值,只要body节点存在,部分版本的Teams客户端依然会预留正文高度,必须完全移除body字段才能兼容所有端消除空白。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:27:35