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

применимо к: Пакет SDK v4APPLIES TO: SDK v4

Это введение, которое познакомится с тем, что вы узнали в статье как программы-роботы работы и обсуждения, управляемые событиями. Прежде чем читать эту статью, необходимо ознакомиться с этими статьями.This is an introduction that builds on what you learned in the article How bots work and Event-driven conversations; you should be familiar with these articles before reading this.

Основные различия в работе ботов, которые разрабатываются для Microsoft Teams, заключаются в способе обработки действий.The primary differences in bots developed for Microsoft Teams is in how activities are handled. Обработчик действий групп является производным от обработчика действий и обрабатывает типы действий, специфичные для групп, перед обработкой более общих типов действий.The Teams activity handler derives from the activity handler and processes Teams-specific activity types before processing more general activity types.

Обработчик действий командTeams activity handler

Чтобы создать программу-робот для групп, создайте класс-робот из класса обработчика действий команды .To create a bot for Teams, derive your bot from the Teams activity handler class. Когда такой робот получает действие, он направляет действие через различные обработчики действий.When such a bot receives an activity, it routes the activity through various activity handlers. Начальный, базовый обработчик — это обработчик включения, который направляет действие в обработчик на основе типа действия.The initial, base handler is the turn handler, and it routes the activity to a handler based on the activity's type. Обработчик поворачивания вызывает обработчик, предназначенный для обработки конкретного типа полученного действия.The turn handler calls the handler that is designed to handle the specific type of activity that was received. Класс обработчика действия команды является производным от класса обработчика действия .The Teams activity handler class is derived from the activity handler class. В дополнение к типам действий, которые может обработать обработчик действия , класс обработчика действий групп включает дополнительные обработчики для действий, связанных с командами.In addition to the activity types that the activity handler can process, the Teams activity handler class includes additional handlers for Teams-specific activities.

Программа-робот, производная от обработчика действия команды, аналогична роботу, производному непосредственно от класса обработчика действия.A bot that derives from the Teams activity handler is similar to a bot that derives directly from the activity handler class. Однако группы содержат дополнительные сведения в conversationUpdate действиях и отправляют действия, связанные с командами invoke .However, Teams includes additional information in conversationUpdate activities and sends Teams-specific invoke activities.

Когда программа-робот обработчика действий – получит действие сообщения, обработчик поочередности направляет действие входящего сообщения своему OnMessageActivityAsync обработчику, аналогично тому, как – это будет основано на обработчике действия.When your Teams activity handler–bot receives a message activity, its turn handler routes the incoming message activity to its OnMessageActivityAsync handler, similar to how an activity handler–based bot would. Однако если команды Bot получают действие обновления диалога, то версия OnConversationUpdateActivityAsync обработчика обрабатывает это действие.However, when your Teams bot receives a conversation update activity, the Teams version of the OnConversationUpdateActivityAsync handler processes the activity.

Для большинства обработчиков действий, специфичных для команд, базовая реализация отсутствует.There is no base implementation for most of the Teams-specific activity handlers. Вам потребуется переопределить эти обработчики и предоставить соответствующую логику для робота.You will need to override these handler and provide appropriate logic for your bot.

Все обработчики действий, описанные в разделе Обработка действий в диалоговых окнах, использующих события с помощью обработчика действий , будут продолжать работать, как и в случае с роботом, не являющимся участниками команды, за исключением того, что члены команды добавили и удалили действия, они будут отличаться в контексте группы, где новый член будет добавлен в группу, а не в поток сообщений.All of the activity handlers described in the activity handling section of the Event-driven conversations using an activity handler article will continue to work as they do with a non-Teams bot, with the exception of handling the members added and removed activities, these will be different in the context of a team, where the new member is added to the team as opposed to a message thread. Дополнительные сведения см. в разделе действия по обновлению команд .See Teams conversation update activities for more details.

Чтобы реализовать логику для таких обработчиков действий, специфичных для этих команд, вы переопределяете методы в Bot.To implement your logic for these Teams-specific activity handlers, you will override methods in your bot.

Логика бота TeamsTeams-bot logic

Логика бота обрабатывает входящие действия из одного или нескольких каналов бота и создает исходящие действия в ответ.The bot logic processes incoming activities from one or more of your bots channels and generates outgoing activities in response. Этот механизм сохраняется и для бота, производного от класса обработчика действий Teams, который первым делом проверяет действия для Teams, а затем передает все остальные действия обработчику действий Bot Framework.This is still true of bot derived from the Teams activity handler class, which first checks for Teams activities, then passes all other activities to the Bot Framework's activity handler.

Действия по обновлению установки командTeams installation update activities

Добавьте обработчик для события обновления установки , чтобы разрешить программу Bot:Add a handler for the installation update event to let your bot:

  • Отправить вводное сообщение при установке в потоке диалога.Send an introductory message when it is installed on a conversation thread.
  • Очистите данные пользователя и потока, вхит они удаляются из потока.Clean up user and thread data whit it is uninstalled from a thread.

Дополнительные сведения см. в разделе событие обновления установки в документации по командам.See Installation update event in the Teams docs for more information.

Действие обновления диалога TeamsTeams conversation update activities

В следующей таблице перечислены события команд, которые создают действие обновления диалога в роботе.The following table lists the Teams events that generate a conversation update activity in a bot. В статье события обновления обсуждений Microsoft Teams содержатся сведения о том, как использовать каждое из этих событий.The Microsoft Teams Conversation update events article describes how to use each of these events.

Ниже приведен список всех обработчиков действий команд, вызванных из OnConversationUpdateActivityAsync метода обработчика действий команд .Below is a list of all of the Teams activity handlers called from the OnConversationUpdateActivityAsync method of the Teams activity handler.

EventTypeEventType ОбработчикHandler УсловиеCondition Документация по командамTeams documentation
channelCreatedchannelCreated OnTeamsChannelCreatedAsync Посылается при создании нового канала в группе, в которой установлен робот.Sent whenever a new channel is created in a team your bot is installed in. Канал создан.Channel created.
channelDeletedchannelDeleted OnTeamsChannelDeletedAsync Отправляется при каждом удалении канала в группе, в которой установлена программа Bot.Sent whenever a channel is deleted in a team your bot is installed in. Канал удален.Channel deleted.
channelRenamedchannelRenamed OnTeamsChannelRenamedAsync Отправляется при каждом переименовании канала в группе, в которой установлена программа Bot.Sent whenever a channel is renamed in a team your bot is installed in. Канал переименован.Channel renamed.
чаннелресторедchannelRestored OnTeamsChannelRestoredAsync Отправляется каждый раз, когда канал, который был удален ранее, восстанавливается в команде, в которой уже установлена программа Bot.Sent whenever a channel that was previously deleted is restored in a team that your bot is already installed in. Канал восстановлен.Channel restored.
мемберсаддедmembersAdded OnTeamsMembersAddedAsync По умолчанию вызывает ActivityHandler.OnMembersAddedAsync метод.By default, calls the ActivityHandler.OnMembersAddedAsync method. Посылается в первый раз, когда Bot добавляется в беседу, и каждый раз, когда новый пользователь добавляется в команду или в группу чатов, в которой установлена программа Bot.Sent the first time your bot is added to a conversation and every time a new user is added to a team or group chat that your bot is installed in. Добавлены члены команды.Team members added.
мемберсремоведmembersRemoved OnTeamsMembersRemovedAsync По умолчанию вызывает ActivityHandler.OnMembersRemovedAsync метод.By default, calls the ActivityHandler.OnMembersRemovedAsync method. Отправляется, если программа-робот удаляется из команды и каждый раз, когда любой пользователь удаляется из команды, членом которой является Bot.Sent if your bot is removed from a team and every time any user is removed from a team that your bot is a member of. Члены команды удалены.Team members removed.
теамарчиведteamArchived OnTeamsTeamArchivedAsync Посылается, когда группа, в которой установлена программа Bot, архивируется.Sent when the team your bot is installed in is archived. Команда архивируется.Team archived.
теамделетедteamDeleted OnTeamsTeamDeletedAsync Посылается, когда группа, в которой находится Bot, была удалена.Sent when the team your bot is in has been deleted. Команда удалена.Team deleted.
teamRenamedteamRenamed OnTeamsTeamRenamedAsync Посылается, когда группа, в которой находится Bot, переименована.Sent when the team your bot is in has been renamed. Команда переименована.Team renamed.
теамресторедteamRestored OnTeamsTeamRestoredAsync Отправляется при восстановлении ранее удаленной команды, в которой находится Bot.Sent when a previously deleted team your bot is in is restored. Команда восстановлена.Team restored.
теамунарчиведteamUnarchived OnTeamsTeamUnarchivedAsync Посылается, если группа, в которой установлена программа Bot, не архивируется.Sent when the team your bot is installed in is unarchived. Команда неархивирована.Team unarchived.

Команды вызывают действияTeams invoke activities

В следующей таблице перечислены команды действий вызова, относящиеся к командам, которые отправляются в Bot.The following table lists the Teams-specific invoke activities Teams sends to a bot. Перечисленные действия вызова предназначены для общения программы-роботы в командах.The invoke activities listed are for conversational bots in Teams. Пакет SDK для Bot Framework также поддерживает вызовы, относящиеся к расширениям для обмена сообщениями.The Bot Framework SDK also supports invokes specific to messaging extensions. Дополнительные сведения см. в статье команды что такое расширения обмена сообщениями .For more information, see the Teams What are messaging extensions article.

Здесь приведен список всех обработчиков действий Teams, которые вызываются из обработчика действий Teams OnInvokeActivityAsync.Here is a list of all of the Teams activity handlers called from the OnInvokeActivityAsync Teams activity handler:

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

Дальнейшие действияNext steps

Сведения о создании ботов для Teams см. в документации для разработчика Microsoft Teams.For building Teams bots, refer to Microsoft Teams Developer documentation.