Бот, разработанный на C #, не показывает адаптивную карточку в microsoft teams

#c# #azure #bots #microsoft-teams

#c# #azure #боты #microsoft-teams

Вопрос:

Когда я создаю бота и отправляю пользователю простую адаптивную карточку в качестве приветственного сообщения, в веб-чате я вижу карточку просто отлично, но когда я отправляю ту же карточку командам, карточка никогда не отображается.

Я вернулся к использованию стандартного кода бронирования авиабилетов Microsoft, и это то же самое и с этим кодом, так что это наводит меня на мысль, что мне не хватает более фундаментального шага.

Я использую.Net core 3.1 в Visual Studio 2019 с использованием C #.

Я использую ngrok для генерации URL-адреса, который я использую в Azure для подключения моего бота. Когда я тестирую в веб-чате Azure, он работает нормально, и я вижу приветственное сообщение и изображение, но когда я затем настраиваю бота в teams, я вообще не вижу карточку.

изображение веб-чата

Все, что я получаю, это текст, который я получаю после приветственной карточки.

изображение команд

Есть идеи, почему этот простой пример не работает? Я искал несколько дней без какого-либо успеха!

Ответ №1:

Вы увидите текст «Добро пожаловать» только один раз в Teams — при первой установке бота. Фактически, для чисто «dev» сценариев вы можете полностью ее пропустить, например, если бот запущен локально, как в ngrok (как вы упомянули), и вы забыли запустить бота, но, тем не менее, установили его в Teams, событие «MembersAdded» никогда не дойдет до вашего бота.

В эмуляторе это НЕ так, потому что вы можете легко перезапустить диалог в эмуляторе, когда захотите. У Teams нет такой возможности.

Есть несколько вариантов решения этой проблемы, особенно если вы не хотите начинать с нуля. Вы можете создать карточку с помощью App Studio, в которой есть возможность фактически «отправить» карточку с помощью бота App Studio. Как только вы будете довольны, вы можете перенести его в свой реальный проект. Чтобы увидеть это в контексте, вы можете создать, так сказать, «скрытую» команду, чтобы инициировать отправку карточки вашим ботом. Например, вы можете заставить своего бота искать входящее сообщение «/ welcomecard» и реагировать на это, повторно отправляя карточку в любое время. Команда на самом деле не «скрыта», поскольку обычный пользователь может вызвать ее, введя этот текст, но ее не совсем легко обнаружить.

Комментарии:

1. Большое спасибо за быстрый ответ! Это очень помогло.

2. рад слышать 🙂