Обзор модели универсального действия

Важно!

Подключение новых поставщиков сообщений с действиями с глобальной область временно приостановлено до 30 июня 2024 г. из-за обновления служб. Существующие глобальные поставщики и подключение поставщиков область для организации и тестирования не затрагиваются. Дополнительные сведения см. в разделе Часто задаваемые вопросы о сообщениях с действиями.

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

По мере роста популярности адаптивных карточек различные узлы начали поддерживать различные модели действий, что привело к фрагментации. Чтобы решить эту проблему, команды Teams, Outlook и Адаптивные карточки работали над созданием новой универсальной модели действий бота, совместимой между узлами. Эти усилия привели к следующему:

  • Обобщение ботов и Bot Framework как способ реализации сценариев на основе адаптивных карточек для Outlook (сообщения с действиями) и Teams (боты)
  • Action.Execute в качестве замены как для (в настоящее время используется в сообщениях с действиями), так Action.Http и Action.Submit (в настоящее время используется ботами).

Схема

Важно!

Универсальная модель действий представлена в адаптивной схеме карта версии 1.4 и более поздних версий. Чтобы использовать эти новые возможности, version свойство адаптивной карточки должно иметь значение 1.4 или выше, как показано в следующих примерах.

Action.Execute

При создании адаптивных карточек для Outlook используйте Action.Execute вместо Action.Http. Ниже приведен пример адаптивного карта использования Action.Execute в полезных данных JSON.

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "text": "Present a form and submit it back to the originator"
    },
    {
      "type": "Input.Text",
      "id": "firstName",
      "placeholder": "What is your first name?"
    },
    {
      "type": "Input.Text",
      "id": "lastName",
      "placeholder": "What is your last name?"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Submit",
          "verb": "personalDetailsFormSubmit"
        }
      ]
    }
  ]
}

Свойства

Свойство Тип Обязательный Описание
type string Да Должно быть задано значение Action.Execute.
Глагол string Нет Удобная строка, которую разработчик может использовать для идентификации действия.
data string, object Нет Исходные данные, с которыми будут объединены входные поля. Это, по сути, скрытые свойства.
заголовок string Нет Метка для кнопки или ссылки, представляющей это действие.
iconUrl uri Нет Необязательный значок, отображаемый в действии в сочетании с заголовком. Поддерживает URI данных в адаптивных карточках версии 1.2+
style ActionStyle Нет Управляет стилем действия, который влияет на то, как действие отображается, произносится и т. д.
Резервный <action object>, "drop" Нет Описывает действия, если action.Execute не поддерживается клиентом, отображающим карта.
Требует Dictionary<string> Нет Ряд пар "ключ-значение", указывающий на компоненты, необходимые элементу с соответствующей минимальной версией. Если компонент отсутствует или его версия недостаточна, активируется резервный вариант.

Механизм обновления

Наряду с Action.Executeэтим теперь поддерживается новый механизм обновления, позволяющий создавать адаптивные карточки, которые автоматически обновляются при отображении. Это гарантирует, что пользователи всегда будут видеть актуальные данные. Чтобы разрешить автоматическое обновление адаптивной карточки в Outlook, определите ее refresh свойство, которое внедряет action тип Action.Execute.

Свойство Тип Обязательный Описание
action "Action.Execute" Да Должен быть экземпляром действия типа "Action.Execute".
userIds Array<string> Да Массив идентификатора ресурса сообщений (MRI) пользователей, для которых должно быть включено автоматическое обновление в Teams. Дополнительные сведения о Teams см . в разделе Идентификаторы пользователей в обновлении . Обратите внимание, что userIds свойство игнорируется в Outlook, и refresh свойство всегда автоматически учитывается.

Пример JSON

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Submit",
      "verb": "personalDetailsCardRefresh"
    },
    "userIds": []
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Present a form and submit it back to the originator"
    },
    {
      "type": "Input.Text",
      "id": "firstName",
      "placeholder": "What is your first name?"
    },
    {
      "type": "Input.Text",
      "id": "lastName",
      "placeholder": "What is your last name?"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Submit",
          "verb": "personalDetailsFormSubmit",
          "fallback": "Action.Submit"
        }
      ]
    }
  ]
}

Обратная совместимость

Новая Action.Execute универсальная модель действий является отходом от Action.Http модели действий, используемой в адаптивной карта версии ниже 1.4, где действия кодируются в адаптивной карточке как явные HTTP-вызовы. Модель Action.Execute позволяет разработчикам реализовывать сценарии, которые работают как в Outlook, так и в Teams. Сценарии сообщений с действиями могут использовать Action.Http модель или новую Action.Execute модель, но не оба варианта. Сценарии, использующие универсальную Action.Execute модель, должны быть реализованы в виде ботов и подписываться на канал Сообщений с действиями Outlook .

Примеры кода

После того как вы изучите документацию, вы можете приступить к работе с некоторыми примерами.