Эта статья основана на том, что вы узнали в том, как боты работают и беседы на основе событий. Прежде чем продолжить, вы должны ознакомиться с этими статьями.
Основное отличие ботов, разработанных для Microsoft Teams, заключается в том, как обрабатываются действия. Обработчик действий Teams является производным от обработчика действий и обрабатывает типы действий, относящиеся к Teams, прежде чем обрабатывать более общие типы действий.
Примечание.
Пакеты SDK для JavaScript, C# и Python для Bot Framework по-прежнему будут поддерживаться, однако пакет SDK java отменяется с окончательной долгосрочной поддержкой, заканчивающейся в ноябре 2023 года.
Существующие боты, созданные с помощью пакета SDK для Java, будут продолжать функционировать.
Чтобы создать бот для Teams, наследуйте бот из класса обработчика действий Teams. Когда такой бот получает действие, он направляет действие через различные обработчики действий. Начальный базовый обработчик — это обработчик поворота, который направляет действие обработчику на основе типа действия. Обработчик поворота вызывает обработчик, предназначенный для обработки определенного типа полученного действия. Класс обработчика действий Teams является производным от класса обработчика действий. Помимо типов действий, которые может обрабатывать обработчик действий, класс обработчика действий Teams включает дополнительные обработчики для действий, относящихся к Teams.
Бот, производный от обработчика действий Teams, аналогичен боту, который является производным непосредственно от класса обработчика действий.
Однако Teams включает дополнительные сведения в conversationUpdate действия и отправляет действия и event действия, относящиеся invoke к Teams.
Когда обработчик действий Teams — бот получает действие сообщения, обработчик поворота направляет входящие действия сообщения обработчику OnMessageActivityAsync сообщений, аналогично тому, как бот на основе обработчика действий. Однако, когда бот Teams получает действие обновления беседы, версия обработчика OnConversationUpdateActivityAsync Teams обрабатывает действие.
Для большинства обработчиков действий, зависящих от Teams, не существует базовой реализации. Вам потребуется переопределить эти обработчики и предоставить соответствующую логику для бота.
Когда обработчик действий Teams — бот получает действие сообщения, обработчик поворота направляет входящие действия сообщения обработчику onMessage сообщений, аналогично тому, как бот на основе обработчика действий. Однако, когда бот Teams получает действие обновления беседы, версия обработчика dispatchConversationUpdateActivity Teams обрабатывает действие.
Для большинства обработчиков действий, зависящих от Teams, не существует базовой реализации. Вам потребуется переопределить эти обработчики и предоставить соответствующую логику для бота.
При переопределении этих обработчиков действий, относящихся к Teams, определите логику бота, а затем обязательно вызовите next() в конце. При вызове next()убедитесь, что следующий обработчик выполняется.
Когда обработчик действий Teams — бот получает действие сообщения, обработчик поворота направляет входящие действия сообщения обработчику onMessageActivity сообщений, аналогично тому, как бот на основе обработчика действий. Однако, когда бот Teams получает действие обновления беседы, версия обработчика onConversationUpdateActivity Teams обрабатывает действие.
Для большинства обработчиков действий, зависящих от Teams, не существует базовой реализации. Вам потребуется переопределить эти обработчики и предоставить соответствующую логику для бота.
Когда обработчик действий Teams — бот получает действие сообщения, обработчик поворота направляет входящие действия сообщения обработчику on_message_activity сообщений, аналогично тому, как бот на основе обработчика действий. Однако, когда бот Teams получает действие обновления беседы, версия обработчика on_conversation_update_activity Teams обрабатывает действие.
Для большинства обработчиков действий, зависящих от Teams, не существует базовой реализации. Вам потребуется переопределить эти обработчики и предоставить соответствующую логику для бота.
Все обработчики действий, описанные в разделе обработки действий бесед на основе событий с помощью статьи обработчика действий, будут продолжать работать так, как они выполняются с ботом, отличным от Teams, за исключением обработки добавленных и удаленных действий, эти действия будут отличаться в контексте команды, где новый член добавляется в команду в отличие от потока сообщений. Дополнительные сведения см. в разделе "Действия по обновлению бесед Teams".
Чтобы реализовать логику для этих обработчиков действий, относящихся к Teams, вы переопределите методы в боте.
Логика бота Teams
Логика бота обрабатывает входящие действия из одного или нескольких каналов бота и создает исходящие действия в ответ. Этот механизм сохраняется и для бота, производного от класса обработчика действий Teams, который первым делом проверяет действия для Teams, а затем передает все остальные действия обработчику действий Bot Framework.
Действия по обновлению установки Teams
Добавьте обработчик события обновления установки, чтобы позволить боту:
Отправьте вводное сообщение при установке в потоке беседы.
Очистка данных пользователей и потоков при удалении из потока.
В следующей таблице перечислены события Teams, создающие действие обновления беседы в боте.
В статье о событиях обновления бесед Microsoft Teams описывается использование каждого из этих событий.
По умолчанию вызывает ActivityHandler.OnMembersAddedAsync метод. Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот.
По умолчанию вызывает ActivityHandler.OnMembersRemovedAsync метод. Отправляется, если бот удаляется из команды, и каждый раз, когда любой пользователь удаляется из команды, в которую входит ваш бот.
Разработчики могут обрабатывать действия обновления бесед, отправленные из Microsoft Teams с помощью двух методов:
Чтобы передать обратный вызов, используйте методы, которые начинаются и заканчиваются Event (например, методомonTeamsMembersAddedEvent).on
При создании производного класса переопределите методы, которые начинаются on и не заканчиваются Event (например, методом onTeamsMembersAdded ).
Разработчики должны использовать только один из следующих вариантов: 1 или 2, а не для одного и того же действия. Это означает, что разработчики должны либо передать обратный вызов методу onTeamsMembersAddedEvent, либо переопределить onTeamsMembersAdded метод в производном классе, а не делать оба.
Методы регистрации обратного вызова
Ниже приведен список всех обработчиков действий Teams, вызываемых из dispatchConversationUpdateActivity метода обработчика действий Teams .
EventType
Метод регистрации
Condition
Документация по Teams
channelCreated
onTeamsChannelCreatedEvent
Отправляется всякий раз, когда новый канал создается в команде бота.
Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот.
По умолчанию вызывает ActivityHandler.onMembersAdded метод. Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот.
По умолчанию вызывает ActivityHandler.onMembersRemoved метод. Отправляется, если бот удаляется из команды, и каждый раз, когда любой пользователь удаляется из команды, в которую входит ваш бот.
По умолчанию вызывает ActivityHandler.onMembersAdded метод. Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот.
По умолчанию вызывает ActivityHandler.onMembersRemoved метод. Отправляется, если бот удаляется из команды, и каждый раз, когда любой пользователь удаляется из команды, в которую входит ваш бот.
По умолчанию вызывает метод базового класса on_members_added_activity . Отправляется при первом добавлении бота в беседу и каждый раз, когда новый пользователь добавляется в группу или групповый чат, в котором установлен бот.
По умолчанию вызывает метод базового класса on_members_removed_activity . Отправляется, если бот удаляется из команды, и каждый раз, когда любой пользователь удаляется из команды, в которую входит ваш бот.
В следующей таблице перечислены действия, связанные с событиями Teams, отправляются боту.
Перечисленные события предназначены для беседных ботов в Teams.
Это обработчики действий, относящиеся к Teams, вызываемые обработчиком OnEventActivityAsyncдействий Teams .
Типы событий
Обработчик
Description
application/vnd.microsoft.meetingEnd
OnTeamsMeetingEndAsync
Бот связан с собранием, которое только что закончилось.
application/vnd.microsoft.meetingStart
OnTeamsMeetingStartAsync
Бот связан с собранием, которое только что началось.
Это обработчики действий, относящиеся к Teams, вызываемые обработчиком onEventActivityдействий Teams .
Типы событий
Обработчик
Description
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Бот связан с собранием, которое только что закончилось.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Бот связан с собранием, которое только что началось.
Это обработчики действий, относящиеся к Teams, вызываемые обработчиком onEventActivityдействий Teams .
Типы событий
Обработчик
Description
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Бот связан с собранием, которое только что закончилось.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Бот связан с собранием, которое только что началось.
Это обработчики действий, относящиеся к Teams, вызываемые обработчиком on_event_activityдействий Teams .
Типы событий
Обработчик
Description
application/vnd.microsoft.meetingEnd
on_teams_meeting_end_event
Бот связан с собранием, которое только что закончилось.
application/vnd.microsoft.meetingStart
on_teams_meeting_start_event
Бот связан с собранием, которое только что началось.
Команды, вызывающие Teams
В следующей таблице перечислены действия, связанные с Teams, которые вызывают Teams, отправляются боту.
Перечисленные действия вызова предназначены для общения ботов в Teams. Пакет SDK для Bot Framework также поддерживает вызовы, относящиеся к расширениям для обмена сообщениями. Дополнительные сведения см. в статье "Что такое расширения обмена сообщениями Teams".
Примечание.
Документация по платформе Microsoft Teams и клиентская библиотека JavaScript Teams (TeamsJS) относятся к модулям задач в качестве модальных диалогов. Дополнительные сведения см . в диалогах .