Меню команд бота

Важно!

Примеры кода в этом разделе основаны на версии 4.6 и более поздних версиях SDK Bot Framework. Если вы ищете документацию для более ранних версий, см. в разделе bots - v3 SDK в папке Ресурсы документации.

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

Создание меню команд для бота

Меню команд определяется в манифесте приложения. Для их создания можно использовать App Studio или вручную добавлять их в манифест приложения.

Создание командного меню для бота с помощью App Studio

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

Создание командного меню для бота с помощью App Studio

  1. Откройте Teams и выберите Приложения с левой области. На странице Приложения ищите App Studio и выберите Open.

    Примечание

    Если у вас нет App Studio, вы можете скачать его. Дополнительные сведения см. в записи установки App Studio.

    App Studio

  2. В App Studio выберите вкладку Редактор Манифеста. Если у вас нет существующего пакета приложений, можно создать или импортировать существующее приложение. Дополнительные сведения см. в обновленном пакете приложений.

  3. В левой области редактора Манифеста и в разделе Возможности выберите Bots.

  4. В правой области редактора Манифеста и в разделе Команды выберите Добавить. Появится экран New Command.

    Меню Добавить кнопку Добавить меню App Studio

  5. Введите командный текст, который должен отображаться в качестве командного меню для бота.

  6. Введите текст справки, который должен отображаться в тексте команды в меню. Текст справки должен быть кратким объяснением цели команды.

  7. Выберите флажки Область, чтобы выбрать, где должно отображаться это командное меню, и выберите Сохранить.

    Кнопка меню меню App Studio

Создание командного меню для бота путем редактирования Manifest.json

Другой способ создания командного меню — это создание его непосредственно в файле манифеста при разработке исходных кодов бота. Чтобы использовать этот метод, следуйте следующим пунктам:

  • Каждое меню поддерживает до десяти команд.
  • Создайте одно командное меню, которое работает во всех сферах.
  • Создайте другое меню команд для каждой области.

Пример манифеста для одного меню для обеих областей

Пример кода манифеста для одного меню для обеих областей:

{
  ⋮
  "bots":[
    {
      "botId":"[Microsoft App ID for your bot]",
      "scopes": [
        "personal",
        "team"
      ],
      "commandLists":[
        {
          "scopes":[
            "team",
            "personal"
          ],
          "commands":[
            {
              "title":"Help",
              "description":"Displays this help message"
            },
            {
              "title":"Search Flights",
              "description":"Search flights from Seattle to Phoenix May 2-5 departing after 3pm"
            },
            {
              "title":"Search Hotels",
              "description":"Search hotels in Portland tonight"
            },
            {
              "title":"Best Time to Fly",
              "description":"Best time to fly to London for a 5 day trip this summer"
            }
          ]
        }
      ]
    }
  ],
  ...
}

Пример манифеста для меню для каждой области

Пример кода манифеста для меню для каждой области:

{
  ...
  "bots":[
    {
      "botId":"<Microsoft app ID for your bot>",
      "scopes": [
        "groupChat",
        "team"
      ],
      "commandLists":[
        {
          "scopes":[
            "team"
          ],
          "commands":[
            {
            "title":"help",
            "description":"Displays this help message for channels"
            }
          ]
        },
        {
          "scopes":[
            "groupChat"
          ],
          "commands":[
            {
            "title":"help",
            "description":"Displays this help message for group chat"
            }
          ]
        }
      ]
    }
  ],
  ...
}

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

Обработка команд меню в коде бота

Боты в группе или канале отвечают только тогда, когда они упоминаются @botname в сообщении. Каждое сообщение, полученное ботом, когда в области группы или канала содержит свое имя в возвращаемом тексте сообщения. Перед обработкой возвращаемой команды необходимо обработать сообщение, полученное ботом с его именем.

Примечание

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

Вы можете разсмеять часть @ Упоминания текста сообщения с помощью статического метода, предоставленного Microsoft Bot Framework. Это метод класса Activity с именем RemoveRecipientMention .

Код C# для размывки части @ Упоминания текста сообщения следующим образом:

var modifiedText = turnContext.Activity.RemoveRecipientMention();

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

Лучшие практики меню команд

Ниже ниже ниже приводится пример лучших практик меню команд:

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

Примечание

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

Следующий этап