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

Microsoft Teams切换至新版后AdaptiveCard图片无法显示问题

New Teams中AdaptiveCard内嵌S3图片无法显示的问题排查与解决

问题场景

切换至New Teams后,通过Amazon S3存储的PNG图片以AdaptiveCard(版本1.5)形式发送到Teams频道时无法显示,但旧版Teams显示正常。核心实现代码如下:

headers = {'Content-Type': 'application/json'}
sendTeams = {
    "type": "message",
    "attachments": [
        {
            "contentType": "application/vnd.microsoft.card.adaptive",
            "content": {
                "type": "AdaptiveCard",
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
                "version": "1.5",
                "body": [
                    {
                        "type": "Image",
                        "url": "https://" + getattr(settings, "S3_BUCKET", None) + "/teams/" + '20230101'+ ".png",
                        "size": "Large",
                        "height": "1500px"
                    }
                ]
            }
        }
    ]
}
json_api = json.dumps(sendTeams)
_teams = "Sample WebHook Address..." # 示例WebHook地址
res = requests.post(_teams, data=json_api, headers=headers)

问题根源

  • 属性校验逻辑差异:New Teams对AdaptiveCard的渲染规则比旧版更严格,代码中设置的1500px固定高度属于极端值,超出了New Teams渲染引擎的容错范围,导致图片加载失败;旧版Teams对该属性的限制更宽松。
  • 版本适配问题:虽然AdaptiveCard 1.5是稳定版本,但New Teams对高版本(1.6+)的适配度更好,部分1.5版本的属性在New Teams中存在解析异常。
  • S3跨域/权限限制:New Teams的安全策略更严格,若S3存储桶未配置允许Teams域名访问的CORS规则,或图片URL存在权限不足、签名过期的情况,会被New Teams拦截加载。

解决方案

调整图片高度属性

移除或修改过于极端的固定高度值,改用自适应配置:

# 修改后的Image组件
{
    "type": "Image",
    "url": "https://" + getattr(settings, "S3_BUCKET", None) + "/teams/" + '20230101'+ ".png",
    "size": "Large",
    "height": "auto" # 改用自适应高度,或设置合理的固定值如"500px"
}

升级AdaptiveCard版本

将AdaptiveCard版本升级到1.6及以上,提升与New Teams的兼容性:

# 修改AdaptiveCard版本字段
"version": "1.6"

配置S3存储桶CORS规则

确保S3存储桶允许Teams域名的GET请求访问,示例CORS配置:

{
    "CORSRules": [
        {
            "AllowedOrigins": ["https://teams.microsoft.com"],
            "AllowedMethods": ["GET"],
            "AllowedHeaders": ["*"]
        }
    ]
}

同时确认图片URL的有效性:确保图片公开可读,或使用的签名URL未过期且权限足够。

改用Teams内部存储(可选)

若S3配置问题持续,可通过Graph API将图片上传至团队文件库,使用内部URL嵌入AdaptiveCard,规避跨域和权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:08:17