Я экспериментирую с расширениями обмена сообщениями для команд MS (используя .net SDK) и сталкиваюсь с проблемой построения ответа на запрос.У меня есть обработчик, который может обрабатывать вызов с composeExtension / query, и он отлично работает, если я возвращаю карту HeroCard, но не AdaptiveCard.Вот мой рабочий код HeroCard:
MessagingExtensionResult result = new MessagingExtensionResult
{
Type = "result",
AttachmentLayout = "list",
Attachments = new List<MessagingExtensionAttachment>(),
};
HeroCard h = new HeroCard()
{
Text = "Hello, my name is Inigo Montoya, you killed my father, prepare to die.",
Tap = new CardAction()
{
Type = "messageBack",
Text = "option1",
},
};
result.Attachments.Add(new Attachment() { ContentType = HeroCard.ContentType, Content = h }.ToMessagingExtensionAttachment());
А вот версия, которую я пробую с адаптивной картой:
AdaptiveCard card = new AdaptiveCard();
card.Body.Add(new AdaptiveTextBlock()
{
Text = "Hello",
Size = AdaptiveTextSize.ExtraLarge
});
card.Body.Add(new AdaptiveImage()
{
Url = new Uri("http://adaptivecards.io/content/cats/1.png")
});
result.Attachments.Add(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }.ToMessagingExtensionAttachment());
Код для создания адаптивной карты взят непосредственно из docs .
Документация о расширениях обмена сообщениями подразумевает, что адаптивные карты должны поддерживаться в этом сценарии (с типом application / vnd.microsoft.card.adaptive).Когда я получаю результат initialFetch из расширения и возвращаю AdaptiveCard (либо отдельно, либо с работающей картой HeroCard в массиве), я получаю «Что-то пошло не так с этим приложением».сообщение в командах.Есть ли способ заставить это работать?