Работа с универсальными действиями для адаптивных карточек
Универсальные действия для адаптивных карточек позволяют реализовать сценарии на основе адаптивных карточек как для Teams, так и для Outlook. В этом документе рассматриваются следующие темы:
- Схема, используемая для универсальных действий для адаптивных карточек
- Модель обновления
-
Действие вызова
adaptiveCard/action
- Обратная совместимость
Краткое руководство по использованию универсальных действий для адаптивных карточек в Teams
Замените все экземпляры
Action.Submit
наAction.Execute
, чтобы обновить существующий сценарий в Teams.Добавьте предложение
refresh
в адаптивную карточку, если хотите использовать автоматическую модель обновления или если для вашего сценария требуются представления, определенные пользователем.Примечание.
userIds
Укажите свойство , чтобы определить, какие пользователи получают автоматические обновления.Обрабатывайте запросы вызова
adaptiveCard/action
в своем боте.Используйте контекст запроса вызова, чтобы ответить с помощью карточек, созданных для пользователя.
Примечание.
Каждый раз, когда бот возвращает новую карточку в результате обработки
Action.Execute
, отклик должен соответствовать формату отклика.
Схема для универсальных действий для адаптивных карточек
Универсальные действия для адаптивных карточек представлены в схеме адаптивных карточек версии 1.5. Чтобы эффективно использовать адаптивную карточку version
, свойство адаптивной карточки должно иметь значение 1.5.
Примечание.
Если для свойства задано version
значение 1.5, адаптивная карточка несовместима с более старыми клиентами платформ или приложений, такими как Outlook и Teams, так как они не поддерживают универсальные действия для адаптивных карточек.
Если для версии карточки задано значение меньше 1.5 и используется один или оба значения, refresh
свойство и Action.Execute
, происходит следующее:
Клиент | Поведение |
---|---|
Teams | Карточка перестает работать. Карточка не обновляется и Action.Execute не отображается в зависимости от версии клиента Teams. Чтобы обеспечить максимальную совместимость в Teams, определите Action.Execute с Action.Submit в свойстве отката. |
Дополнительные сведения о поддержке клиентов более старых версий см. в разделе обратная совместимость.
Action.Execute
При разработке адаптивных карточек замените Action.Submit
и Action.Http
на Action.Execute
. Схема для Action.Execute
аналогична схеме Action.Submit
.
Дополнительные сведения см. в разделе Схема и свойства Action.Execute.
Теперь вы можете использовать модель обновления, чтобы разрешить автоматическое обновление адаптивных карточек.
Модель обновления
Чтобы автоматически обновить адаптивную карточку, определите ее свойство refresh
, которое внедряет действие типа Action.Execute
и массив userIds
.
Дополнительные сведения см. в разделе схема и свойства обновления.
Идентификаторы пользователей в процессе обновления
Ниже описаны особенности UserIds в процессе обновления.
UserIds — это массив MRI пользователя, который является частью свойства
refresh
адаптивных карточек.userIds
Если свойство списка указано какuserIds: []
в разделе обновления карточки, карточка не обновляется автоматически. Вместо этого параметр Обновить карточку отображается для пользователя в меню с тремя точками в веб-клиенте Teams или на рабочем столе, а также в контекстном меню с длинным нажатием на мобильных устройствах Teams, то есть Android или iOS, чтобы обновить карточку вручную. Кроме того, вы можете пропуститьuserIds
свойство обновления в целом, если сценарий включает <=60 участников в групповых чатах или каналах Teams. Клиент Teams автоматически вызывает вызовы обновления для всех пользователей, если группа или канал содержит <=60 пользователей.Добавлено свойство UserIds, так как каналы в Teams могут включать множество участников. Если все участники одновременно просматривают канал, безусловное автоматическое обновление приводит к множеству одновременных вызовов бота. Свойство
userIds
всегда должно быть включено, чтобы определять, какие пользователи должны получать автоматическое обновление при максимуме в 60 (шестьдесят) пользовательских MRI.Вы можете получить пользовательские mris участника беседы Teams. Дополнительные сведения о добавлении в список userIds в разделе обновления адаптивной карточки см. в разделе получение списка пользователей или профиля пользователя.
Вы можете получить MRI пользователя для канала, группового чата или индивидуального чата, используя следующий пример.
С помощью TurnContext
userMRI= turnContext.Activity.From.Id
С помощью метода GetMemberAsync
var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);var userMRI = member.Id;
- Пример MRI пользователя Teams:
29:1bSnHZ7Js2STWrgk6ScEErLk1Lp2zQuD5H2qQ960rtvstKp8tKLl-3r8b6DoW0QxZimuTxk_kupZ1DBMpvIQQUAZL-PNj0EORDvRZXy8kvWk
Примечание.
Свойство userIds
игнорируется в Outlook, а свойство refresh
всегда активируется автоматически. Для Outlook проблемы масштабирования не существует, так как пользователи просматривают карточку в разное время.
Следующий шаг — использование запуска действия adaptiveCard/action
, чтобы понять, какой должен быть сделан запрос после выполнения Action.Execute
.
adaptiveCard/action
запуск действия
Когда в клиенте выполняется Action.Execute
, для вашего бота создается новый тип запуска действия adaptiveCard/action
.
Дополнительные сведения см. в разделе: формат запроса и свойства обычного действия вызова adaptiveCard/action
.
Дополнительные сведения см. в разделе: формат отклика и свойства обычного действия вызова adaptiveCard/action
с поддерживаемыми типами отклика.
Затем к старым клиентам на разных платформах можно применить обратную совместимость и сделать адаптивную карточку совместимой.
Обратная совместимость
Универсальные действия для адаптивных карточек позволяют задать свойства, которые обеспечивают обратную совместимость с более старыми версиями Outlook и Teams.
Teams
Чтобы обеспечить обратную совместимость адаптивных карточек с более старыми версиями Teams, необходимо включить свойство fallback
и установить для него значение Action.Submit
. Кроме того, код бота должен обрабатывать как Action.Execute
, так и Action.Submit
.
Дополнительные сведения см. в разделе обратная совместимость в Teams.
Примеры кода
Название примера | Описание | .NET | Node.js | Манифест |
---|---|---|---|---|
Бот организации питания Teams | В этом примере показан бот, который принимает заказ продуктов питания с помощью адаптивных карточек. | Просмотр | Недоступно | Недоступно |
Адаптивные карточки последовательных рабочих процессов | В этом примере демонстрируется реализация последовательных рабочих процессов, пользовательских представлений и текущих адаптивных карточек в ботах. | Просмотр | Просмотр | Просмотр |
См. также
Platform Docs