Изображение размещено внутри недоступно на клиенте MS Teams - PullRequest
2 голосов
/ 10 февраля 2020

Мы включили приложение Bot Framework в наших корпоративных командах, и мы хотим использовать 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-адрес только что добавлен в src атрибут тега img HTML. Однако в MS Teams кажется, что он предварительно обрабатывается каким-то странным прокси / MITM, и URL приводит к:

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

Когда мы пытаемся просмотреть URL, чтобы увидеть, почему картинка не отображается, мы видим пустую страницу с кодом ответа 502.

Есть ли способ заставить команды MS не изменять src атрибуты изображений.

1 Ответ

3 голосов
/ 11 февраля 2020

Для рендеринга изображения на адаптивной карте оно должно быть размещено в общедоступной c сети доставки контента (CDN). Здесь официальная ссылка на документ .

Работает в клиенте WebChat, потому что в браузере ваша аутентификация уже кэширована, где, как в приложении Teams, нет кэша, а изображение требует аутентификации.

Чтобы заставить его работать, необходимо разместить образ в общедоступном c домене или Azure хранилище BLOB-объектов.

...