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


Создать меню команд

Примечание.

Мы улучшили интерфейс меню команд в качестве начальных команд. Рекомендуется обращаться к начальным строкам запросов.

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

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

Примечание.

Рекомендуется создать бот команд, следуя пошаговому руководству по созданию командного бота с помощью JavaScript с помощью средства разработки нового поколения для Teams. Дополнительные сведения о наборе средств Teams см. в статье Общие сведения о наборе средств Teams для Visual Studio Code и обзор набора средств Teams для Visual Studio.

Важно!

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

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

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

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

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

  1. Откройте Teams и выберите Приложения в левой области. На странице Приложения найдите портал разработчика и нажмите кнопку Открыть.

    Снимок экрана: добавление портала разработчика в клиент Teams.

  2. На портале разработчика выберите вкладку Приложения . Если у вас нет существующего пакета приложения, вы можете создать или импортировать существующее приложение. Дополнительные сведения см. в разделе Портал разработчика для Teams.

  3. Перейдите на вкладку Приложения , выберите Функции приложений в левой области, а затем выберите Боты.

  4. Выберите Добавить команду в разделе Команды .

    Снимок экрана: добавление команды для бота на портале разработчика.

  5. Введите команду , которая отображается в меню команд бота.

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

  7. Выберите поле Область проверка и нажмите кнопку Добавить. Это определяет, где должно отображаться меню команд.

    Снимок экрана: добавление команды, описания и областей для бота.

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

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

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

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

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

{
  ⋮
  "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"
            }
          ]
        }
      ]
    }
  ],
  ...
}

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

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

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

Примечание.

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

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

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

// Remove recipient mention text from Text property.
// Use with caution because this function is altering the text on the Activity.
var modifiedText = turnContext.Activity.RemoveRecipientMention();

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

Рекомендации по применению командного меню

Ниже приведены рекомендации по применению командного меню.

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

Примечание.

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

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

См. также