Принцип работы ботов Microsoft Teams

ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4

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

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

Примечание.

Пакеты SDK для JavaScript, C# и Python для Bot Framework по-прежнему будут поддерживаться, однако пакет SDK java отменяется с окончательной долгосрочной поддержкой, заканчивающейся в ноябре 2023 года. В этом репозитории будут выполняться только критически важные исправления безопасности и ошибок.

Существующие боты, созданные с помощью пакета SDK для Java, будут продолжать функционировать.

Для создания нового бота рекомендуется использовать Power Virtual Agent и ознакомиться с выбором подходящего решения чат-бота.

Дополнительные сведения см. в статье "Будущее создания бота".

Обработчик действий Teams

Чтобы создать бот для Teams, наследуйте бот из класса обработчика действий Teams. Когда такой бот получает действие, он направляет действие через различные обработчики действий. Начальный базовый обработчик — это обработчик поворота, который направляет действие обработчику на основе типа действия. Обработчик поворота вызывает обработчик, предназначенный для обработки определенного типа полученного действия. Класс обработчика действий Teams является производным от класса обработчика действий. Помимо типов действий, которые может обрабатывать обработчик действий, класс обработчика действий Teams включает дополнительные обработчики для действий, относящихся к Teams.

Бот, производный от обработчика действий Teams, аналогичен боту, который является производным непосредственно от класса обработчика действий. Однако Teams включает дополнительные сведения в conversationUpdate действия и отправляет действия и event действия, относящиеся invoke к Teams.

Когда обработчик действий Teams — бот получает действие сообщения, обработчик поворота направляет входящие действия сообщения обработчику OnMessageActivityAsync сообщений, аналогично тому, как бот на основе обработчика действий. Однако, когда бот Teams получает действие обновления беседы, версия обработчика OnConversationUpdateActivityAsync Teams обрабатывает действие.

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

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

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

Логика бота Teams

Логика бота обрабатывает входящие действия из одного или нескольких каналов бота и создает исходящие действия в ответ. Этот механизм сохраняется и для бота, производного от класса обработчика действий Teams, который первым делом проверяет действия для Teams, а затем передает все остальные действия обработчику действий Bot Framework.

Действия по обновлению установки Teams

Добавьте обработчик события обновления установки, чтобы позволить боту:

  • Отправьте вводное сообщение при установке в потоке беседы.
  • Очистка данных пользователей и потоков при удалении из потока.

Дополнительные сведения см . в разделе "Обновление установки" в документации Teams.

Действие обновления диалога Teams

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

Ниже приведен список всех обработчиков действий Teams, вызываемых из OnConversationUpdateActivityAsync метода обработчика действий Teams .

EventType Обработчик Condition Документация по Teams
channelCreated OnTeamsChannelCreatedAsync Отправляется всякий раз, когда новый канал создается в команде бота. Канал создан.
channelDeleted OnTeamsChannelDeletedAsync Отправляется каждый раз, когда канал удаляется в команде, в которую установлен бот. Канал удален.
channelRenamed OnTeamsChannelRenamedAsync Отправляется всякий раз, когда канал переименован в команде, в которую установлен бот. Канал переименован.
channelRestored OnTeamsChannelRestoredAsync Отправляется всякий раз, когда канал, который ранее был удален, восстанавливается в команде, в которую уже установлен бот. Канал восстановлен.
membersAdded OnTeamsMembersAddedAsync По умолчанию вызывает ActivityHandler.OnMembersAddedAsync метод. Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот. Добавлены члены команды.
membersRemoved OnTeamsMembersRemovedAsync По умолчанию вызывает ActivityHandler.OnMembersRemovedAsync метод. Отправляется, если бот удаляется из команды, и каждый раз, когда любой пользователь удаляется из команды, в которую входит ваш бот. Члены команды удалены.
teamArchived OnTeamsTeamArchivedAsync Отправляется при установке бота в архиве. Команда архивирована.
teamDeleted OnTeamsTeamDeletedAsync Отправляется при удалении бота. Команда удалена.
teamRenamed OnTeamsTeamRenamedAsync Отправляется при переименовании команды бота. Команда переименована.
TeamRestored OnTeamsTeamRestoredAsync Отправляется при восстановлении ранее удаленной команды бота. Команда восстановлена.
teamUnarchived OnTeamsTeamUnarchivedAsync Отправляется при установке бота в неархивном виде. Команда неархивирована.

Действия по событиям Teams

В следующей таблице перечислены действия, связанные с событиями Teams, отправляются боту. Перечисленные события предназначены для беседных ботов в Teams.

Это обработчики действий, относящиеся к Teams, вызываемые обработчиком OnEventActivityAsyncдействий Teams .

Типы событий Обработчик Description
application/vnd.microsoft.meetingEnd OnTeamsMeetingEndAsync Бот связан с собранием, которое только что закончилось.
application/vnd.microsoft.meetingStart OnTeamsMeetingStartAsync Бот связан с собранием, которое только что началось.

Команды, вызывающие Teams

В следующей таблице перечислены действия, связанные с Teams, которые вызывают Teams, отправляются боту. Перечисленные действия вызова предназначены для общения ботов в Teams. Пакет SDK для Bot Framework также поддерживает вызовы, относящиеся к расширениям для обмена сообщениями. Дополнительные сведения см. в статье "Что такое расширения обмена сообщениями Teams".

Примечание.

Документация по платформе Microsoft Teams и клиентская библиотека JavaScript Teams (TeamsJS) относятся к модулям задач в качестве модальных диалогов. Дополнительные сведения см . в диалогах .

Ниже приведен список всех обработчиков действий Teams, вызываемых обработчиком OnInvokeActivityAsyncдействий Teams :

Вызываемые типы Обработчик Description
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Teams O365 Connector Card Action.
CardAction.Invoke OnTeamsCardActionInvokeAsync Teams Card Action Invoke.
fileConsent/invoke OnTeamsFileConsentAcceptAsync Teams File Consent Accept.
fileConsent/invoke OnTeamsFileConsentAsync Teams File Consent.
fileConsent/invoke OnTeamsFileConsentDeclineAsync Teams File Consent.
signin/verifyState OnTeamsSigninVerifyStateAsync Teams Sign in Verify State.
task/fetch OnTeamsTaskModuleFetchAsync Teams Task Module Fetch.
task/submit OnTeamsTaskModuleSubmitAsync Teams Task Module Submit.

Следующие шаги

Сведения о создании ботов для Teams см. в документации для разработчика Microsoft Teams.