Поделиться через


Работа с универсальными действиями для адаптивных карточек

Универсальные действия для адаптивных карточек позволяют реализовать сценарии на основе адаптивных карточек как для Teams, так и для Outlook. В этом документе рассматриваются следующие темы:

Краткое руководство по использованию универсальных действий для адаптивных карточек в Teams

  1. Замените все экземпляры Action.Submit на Action.Execute, чтобы обновить существующий сценарий в Teams.

  2. Добавьте предложение refresh в адаптивную карточку, если хотите использовать автоматическую модель обновления или если для вашего сценария требуются представления, определенные пользователем.

    Примечание.

    userIds Укажите свойство , чтобы определить, какие пользователи получают автоматические обновления.

  3. Обрабатывайте запросы вызова adaptiveCard/action в своем боте.

  4. Используйте контекст запроса вызова, чтобы ответить с помощью карточек, созданных для пользователя.

    Примечание.

    Каждый раз, когда бот возвращает новую карточку в результате обработки 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 пользователя для канала, группового чата или индивидуального чата, используя следующий пример.

  1. С помощью TurnContext

    userMRI= turnContext.Activity.From.Id

  2. С помощью метода 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 В этом примере показан бот, который принимает заказ продуктов питания с помощью адаптивных карточек. Просмотр Недоступно Недоступно
Адаптивные карточки последовательных рабочих процессов В этом примере демонстрируется реализация последовательных рабочих процессов, пользовательских представлений и текущих адаптивных карточек в ботах. Просмотр Просмотр Просмотр

См. также