Botframework 在MS Team客户端上内部无法访问托管的映像

Botframework 在MS Team客户端上内部无法访问托管的映像,botframework,microsoft-teams,Botframework,Microsoft Teams,我们已经在公司团队中启用了Bot框架应用程序,我们希望使用AdaptiveCards向用户展示丰富的内容。例如,我们正在发送AdaptiveImage,其中包含指向公司图像存储的url 示例代码: new AdaptiveImage { Size = AdaptiveImageSize.Small, Url = new Uri("https://corporate-storage.com/images/image1.png"), // This is image not host

我们已经在公司团队中启用了Bot框架应用程序,我们希望使用
AdaptiveCards
向用户展示丰富的内容。例如,我们正在发送
AdaptiveImage
,其中包含指向公司图像存储的url

示例代码:

new AdaptiveImage
{
    Size = AdaptiveImageSize.Small,
    Url = new Uri("https://corporate-storage.com/images/image1.png"), // This is image not hosted publicly.
    AltText = "Some text"
}
这在WebChat客户端中运行良好,因为url只是附加到
img
HTML标记的
src
属性中。然而,在MS团队中,它似乎被一些奇怪的代理/MITM预处理,url结果是:

https://urlp.asm.skype.com/v1/url/content?url=https%3a%2f%2fcorporate-proxy.com%2fimages%2fimage1.png

当我们试图浏览url以查看图片未呈现的位置时,我们会在调试器中看到带有502响应代码的空页面


是否有一种方法可以强制MS团队不更改图片的属性。

要在自适应卡中渲染图像,必须将其托管在公共内容交付网络(CDN)中。给你

它在WebChat客户端中工作,因为在浏览器中,您的身份验证已经被缓存,而在Teams应用程序中没有缓存,并且图像需要身份验证


您需要将映像托管在公共域或Azure Blob存储中才能使其正常工作

尽管我无法回答您的问题,但值得注意的是,我怀疑他们正在对图像进行安全扫描、缓存和CDN分发,因此总体而言,这对我们有利,而不是不利。您不能在公司网络之外托管图像吗?也许是Azure Blob存储?在CDN中托管图片的问题是,我必须在特定的用例中呈现用户的化身,正如您已经想象到的,这些用户(图片)的数量相当大。接下来,由于我们的机器人托管在Azure中,我无法连接到本地网络来访问图片并将其上传到CND-即使使用gateway,这也不会得到我们安全部门的批准。我希望我可以简单地将我们的机器人标记为可信,以防止OOB代理。奇怪的是,微软在prem communicator上推荐团队,但你们不能在prem上共享内容。。。