适用于 MS Teams 的自适应卡片 - 图像显示在 Web 界面中,但不显示在桌面应用程序中

Adaptive cards for MS Teams - images displaying in web interface but not desktop application

我经常遇到团队和自适应卡片的问题。如果我 post 来自 Flow post 自适应卡连接器或直接来自图表 API 的卡片似乎并不重要,我的卡片中的图像显示在团队网络浏览器中界面,但不在桌面应用程序中。

除了卡显示正常,就是桌面无图像渲染。很难调试,因为它在 chrome 中工作正常,如果有一种方法可以查看桌面应用程序源代码以查看该 img url 是否被添加了前缀或替换或其他内容。

奇怪的是,我看过一些它为其他人工作的视频,但是。这是我在 Graph API body JSON...

中的卡片代码
{
"subject": null,
"body": {
    "contentType": "html",
    "content": "<attachment id=\"74d20c7f34aa4a7fb74e2b30004247c5\"></attachment>"
},
"attachments": [
    {
        "id": "74d20c7f34aa4a7fb74e2b30004247c5",
        "contentType": "application/vnd.microsoft.card.adaptive",
        "contentUrl": null,
        "content": "{ \"type\": \"AdaptiveCard\", \"body\": [ { 
        \"type\": \"TextBlock\",
        \"size\": \"Medium\",
        \"weight\": \"Bolder\",
        \"text\": \"Hello andy\"
    },
    {
        \"type\": \"Image\",
        \"altText\": \"\",
        \"url\": \"https://companyname.sharepoint.com/sites/TeamsDev/ImageLib/imagebname.jpg\"
    }
],
\"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",
\"version\": \"1.0\"
}",
        "name": null,
        "thumbnailUrl": null
    }
]
}

根据评论,这是因为图片 Url - 它是一个 SharePoint Url ,因此在 Web 客户端中默默地使用用户登录会话,但在桌面客户端。

是的,当您尝试使用共享点 url 在 Adaptive Card 中加载图像时,它使用图像中的 accessToken url(如果您尝试调试,您​​可以看到)使用相同的用户凭据在 Teams Web 版本中加载自适应卡,因为会话可以正常工作,但这种相同的行为不适用于 Teams Desktop 客户端。最好将图像放入解决方案本身并从那里使用。