Определение команд действий расширения для сообщений

Перед созданием команды действия необходимо решить следующие важные вопросы:

  1. Откуда можно будет активировать команду действия?
  2. Как создается диалоговое окно (называемое модулем задач в TeamsJS версии 1.x)?
  3. Отправляется ли последнее сообщение или карта в канал ботом, или сообщение или карта вставлено в область создания сообщения, которое пользователь должен отправить?

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


Выбор расположений, из которых будет вызываться команда действия

Сначала необходимо определить расположение, из которого должна быть вызвана команда действия. При указании свойства в манифесте context приложения (ранее называемом манифестом приложения Teams) можно вызвать команду из одного или нескольких из следующих расположений:

  • Область создания сообщения: кнопки в нижней части области создания сообщения.

    Контекст команд = compose

  • Командное поле: с помощью / в командном окне. Например, /your-app-name. Если вы используете классическую команду Teams, команда action вызывается в командном @mentioning окне. Например, @your-app-name.

    Контекст команд = commandBox

    Примечание.

    Если расширение сообщений вызывается из командного окна, вы не сможете ответить сообщением бота, вставленным непосредственно в беседу.

  • Сообщение: непосредственно из существующего сообщения через меню переполнения ... сообщения.

    Контекст команд = message

    Примечание.

    • Начальный вызов бота включает объект JSON, содержащий сообщение, из которого он был вызван. Вы можете обработать сообщение перед представлением диалогового окна.

    • Когда пользователь выбирает многоточие ..., отображается меню переполнения. Однако по умолчанию действия с сообщениями для приложений, созданных вами для вашей организации или сторонних приложений, не отображаются. Когда пользователь выберет Дополнительные действия, он сможет просмотреть действия сообщения и выбрать необходимый параметр. Соответствующее действие сообщения отображается в меню переполнения. В меню переполнения отображаются три последних действия сообщений. Вы не можете закрепить отображаемое действие сообщения.

На следующем рисунке показаны расположения, из которых вызывается команда действия:

Расположения вызова команды действия

Выбор способа создания диалогового окна

Помимо выбора места вызова команды, необходимо также выбрать способ заполнения формы в диалоговом окне для пользователей. У вас есть три варианта создания формы, отображаемой в диалоговом окне:

  • Статический список параметров: это самый простой метод. Вы можете определить список параметров в манифесте приложения, отображаемом клиентом Teams, но не можете управлять форматированием в этом случае.
  • Адаптивная карточка. Вы можете использовать адаптивную карточку, которая обеспечивает больший контроль над пользовательским интерфейсом, но по-прежнему ограничивает доступные элементы управления и параметры форматирования.
  • Внедренное веб-представление. Вы можете внедрить пользовательское веб-представление в диалоговое окно, чтобы иметь полный контроль над пользовательским интерфейсом и элементами управления.

Если вы хотите создать диалоговое окно со статическим списком параметров и когда пользователь отправляет его, вызывается расширение сообщения. При использовании внедренного веб-представления или адаптивной карточки расширение сообщения должно обработать исходное событие вызова от пользователя, создать диалоговое окно и вернуть его клиенту.

Выбор способа, которым будет отправлено окончательное сообщение

В большинстве случаев команда действия приводит к вставке карточки в окно создания сообщения. Пользователь может отправить ее в канал или чат. В этом случае сообщение поступает от пользователя, и бот не может изменять или обновлять карта дальше.

Если расширение для сообщений вызывается из поля создания или непосредственно из сообщения, веб-служба может вставить окончательный ответ непосредственно в канал или чат. В этом случае адаптивная карточка поступает от бота, бот обновляет ее и при необходимости отвечает потоку беседы. Необходимо добавить объект в bot манифест приложения, используя тот же идентификатор и определив соответствующие области.

Создание команды действия с помощью портала разработчика

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

Чтобы создать расширение сообщений на основе действий с помощью набора средств Teams, выполните следующие действия.

  1. Откройте Visual Studio Code.
  2. В левой области выберите Набор средств Teams.
  3. Выберите Создать новое приложение.
  4. Выберите Расширение сообщений.
  5. Выберите Сбор из входных и обрабатываемых данных.
  6. Выберите язык программирования.
  7. Выберите Папка по умолчанию.
  8. Введите имя приложения и нажмите клавишу ВВОД.

Набор средств Teams формирует шаблон проекта и создает расширение для сообщений о действиях.

Фрагменты кода

В следующем коде приведен пример использования расширений сообщений на основе действий.

protected override Task<MessagingExtensionActionResponse> OnTeamsMessagingExtensionFetchTaskAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken)
        {
            // Handle different actions using switch.
            switch (action.CommandId)
            {
                case "HTML":
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Height = 200,
                                Width = 400,
                                Title = "Task Module HTML Page",
                                Url = baseUrl + "/htmlpage.html",
                            },
                        },
                    };
                default:
                    string memberName = "";
                    var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
                    memberName = member.Name;
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Card = <<AdaptiveAction card json>>,
                                Height = 200,
                                Width = 400,
                                Title = $"Welcome {memberName}",
                            },
                        },
                    };
            }
        }

Пример кода

Название примера Описание .NET Node.js Манифест
Действие расширения для сообщений Teams В этом примере показано, как определить команды действий, создать диалоговое окно и ответить на действие отправки диалога. Просмотр Просмотр Просмотр
Предварительный просмотр действия расширения сообщений В этом примере показано, как использовать предварительную версию действий в расширениях обмена сообщениями с помощью Bot Framework версии 4. Просмотр Просмотр View

Пошаговые инструкции

Выполните пошаговые инструкции по созданию расширения сообщений на основе действий Teams.

Следующее действие

Если вы используете адаптивную карточку или внедренное веб-представление без taskInfo объекта, следующим шагом является следующее:

Если вы используете параметры или внедренное веб-представление с taskInfo объектом, следующим шагом является следующее:

См. также