Microsoft Teams 봇의 작동 방식How 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. Teams 활동 처리기는 활동 처리기에서 파생되고 보다 일반적인 활동 유형을 처리하기 전에 Teams 관련 활동 유형을 처리합니다. The Teams activity handler derives from the activity handler and processes Teams-specific activity types before processing more general activity types.

Teams 활동 처리기Teams activity handler

Teams용 봇을 만들려면 Teams 활동 처리기 클래스에서 봇을 파생합니다.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. Teams 활동 처리기 클래스는 활동 처리기 클래스에서 파생됩니다.The Teams activity handler class is derived from the activity handler class. 작업 처리기가 처리할 수 있는 활동 유형 외에도 Teams 활동 처리기 클래스에는 Teams 관련 활동에 대한 추가 처리기가 포함됩니다.In addition to the activity types that the activity handler can process, the Teams activity handler class includes additional handlers for Teams-specific activities.

Teams 활동 처리기에서 파생되는 봇은 활동 처리기 클래스에서 직접 파생되는 봇과 비슷합니다.A bot that derives from the Teams activity handler is similar to a bot that derives directly from the activity handler class. 그러나 Teams는 활동에 추가 정보를 포함하고 conversationUpdate Teams 관련 활동을 invoke 보냅니다.However, Teams includes additional information in conversationUpdate activities and sends Teams-specific invoke activities.

Teams 활동 처리기 – 봇이 메시지 활동을 받으면 해당 턴 처리기는 활동 처리기 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. 그러나 Teams 봇이 대화 업데이트 활동을 받으면 Teams 버전의 OnConversationUpdateActivityAsync 처리기가 활동을 처리합니다.However, when your Teams bot receives a conversation update activity, the Teams version of the OnConversationUpdateActivityAsync handler processes the activity.

대부분의 Teams 관련 활동 처리기에 대한 기본 구현은 없습니다.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.

활동 처리기를 사용하는 이벤트 기반 대화 문서의 활동 처리 섹션에 설명된 모든 활동 처리기는 비 Teams 봇에서와 마찬가지로 계속 작동합니다. 단, 추가된 활동과 제거된 활동을 처리하는 경우를 제외하고 새 멤버가 메시지 스레드가 아닌 팀에 추가되는 팀의 컨텍스트에서는 다릅니다.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. 자세한 내용은 Teams 대화 업데이트 활동을 참조하세요.See Teams conversation update activities for more details.

이러한 Teams 관련 활동 처리기에 대한 논리를 구현하려면 봇의 메서드를 재정의합니다.To implement your logic for these Teams-specific activity handlers, you will override methods in your bot.

Teams-봇 논리Teams-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 설치 업데이트 활동Teams installation update activities

봇이 다음을 수행할 수 있도록 설치 업데이트 이벤트에 대한 처리기를 추가합니다.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.

자세한 내용은 Teams 문서의 설치 업데이트 이벤트를 참조하세요.See Installation update event in the Teams docs for more information.

Teams 대화 업데이트 활동Teams conversation update activities

다음 표에서는 봇에서 대화 업데이트 활동을 생성하는 Teams 이벤트를 나열합니다.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.

다음은 Teams 활동 처리기의 메서드에서 호출된 모든 OnConversationUpdateActivityAsync Teams 활동 처리기의 목록입니다.Below is a list of all of the Teams activity handlers called from the OnConversationUpdateActivityAsync method of the Teams activity handler.

EventTypeEventType HandlerHandler 조건Condition Teams 설명서Teams documentation
channelCreatedchannelCreated OnTeamsChannelCreatedAsync 봇이 설치된 팀에서 새 채널이 만들어질 때마다 전송됩니다.Sent whenever a new channel is created in a team your bot is installed in. 채널이 를 만들었습니다.Channel created.
channelDeletedchannelDeleted OnTeamsChannelDeletedAsync 봇이 설치된 팀에서 채널이 삭제될 때마다 전송됩니다.Sent whenever a channel is deleted in a team your bot is installed in. 채널이 삭제되었습니다.Channel deleted.
channelRenamedchannelRenamed OnTeamsChannelRenamedAsync 봇이 설치된 팀에서 채널 이름이 바뀔 때마다 전송됩니다.Sent whenever a channel is renamed in a team your bot is installed in. 채널 이름이 로 바뀌었습니다.Channel renamed.
channelRestoredchannelRestored OnTeamsChannelRestoredAsync 이전에 삭제된 채널이 봇이 이미 설치된 팀에서 복원될 때마다 전송됩니다.Sent whenever a channel that was previously deleted is restored in a team that your bot is already installed in. 채널이 복원되었습니다.Channel restored.
membersAddedmembersAdded OnTeamsMembersAddedAsync 기본적으로 는 ActivityHandler.OnMembersAddedAsync 메서드를 호출합니다.By default, calls the ActivityHandler.OnMembersAddedAsync method. 봇이 대화에 처음 추가될 때와 봇이 설치된 팀 또는 그룹 채팅에 새 사용자가 추가될 때마다 전송됩니다.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.
membersRemovedmembersRemoved OnTeamsMembersRemovedAsync 기본적으로 는 ActivityHandler.OnMembersRemovedAsync 메서드를 호출합니다.By default, calls the ActivityHandler.OnMembersRemovedAsync method. 봇이 팀에서 제거되고 봇이 멤버인 팀에서 사용자가 제거될 때마다 전송됩니다.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.
teamArchivedteamArchived OnTeamsTeamArchivedAsync 봇이 설치된 팀이 보관될 때 전송됩니다.Sent when the team your bot is installed in is archived. 팀이 를 보관했습니다.Team archived.
teamDeletedteamDeleted OnTeamsTeamDeletedAsync 봇이 있는 팀이 삭제되었을 때 전송됩니다.Sent when the team your bot is in has been deleted. 팀에서 를 삭제했습니다.Team deleted.
teamRenamedteamRenamed OnTeamsTeamRenamedAsync 봇이 있는 팀의 이름이 바뀌었을 때 전송됩니다.Sent when the team your bot is in has been renamed. 팀의 이름이 로 바뀌었습니다.Team renamed.
teamRestoredteamRestored OnTeamsTeamRestoredAsync 이전에 삭제된 팀이 봇이 복원되면 전송됩니다.Sent when a previously deleted team your bot is in is restored. 팀이 를 복원했습니다.Team restored.
teamUnarchivedteamUnarchived OnTeamsTeamUnarchivedAsync 봇이 설치된 팀이 구조화되지 않은 경우 전송됩니다.Sent when the team your bot is installed in is unarchived. 팀이 구조화되지 않은 입니다.Team unarchived.

팀에서 작업 호출Teams invoke activities

다음 표에서는 팀에서 봇으로 보내는 팀 별 호출 활동을 보여 줍니다.The following table lists the Teams-specific invoke activities Teams sends to a bot. 나열 된 호출 활동은 팀의 대화형 봇 용입니다.The invoke activities listed are for conversational bots in Teams. 또한 Bot Framework SDK는 메시징 확장과 관련된 호출도 지원합니다.The Bot Framework SDK also supports invokes specific to messaging extensions. 자세한 내용은 메시징 확장 이란 팀 문서를 참조 하세요.For more information, see the Teams What are messaging extensions article.

OnInvokeActivityAsync Teams 작업 처리기에서 호출되는 모든 Teams 작업 처리기의 목록은 다음과 같습니다.Here is a list of all of the Teams activity handlers called from the OnInvokeActivityAsync Teams activity handler:

호출 형식Invoke types HandlerHandler DescriptionDescription
actionableMessage/executeActionactionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Teams O365 커넥터 카드 작업Teams O365 Connector Card Action.
CardAction.InvokeCardAction.Invoke OnTeamsCardActionInvokeAsync Teams 카드 작업 호출Teams Card Action Invoke.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentAcceptAsync Teams 파일 동의 수락Teams File Consent Accept.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentAsync Teams 파일 동의Teams File Consent.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentDeclineAsync Teams 파일 동의Teams File Consent.
signin/verifyStatesignin/verifyState OnTeamsSigninVerifyStateAsync Teams 로그인 확인 상태Teams Sign in Verify State.
task/fetchtask/fetch OnTeamsTaskModuleFetchAsync Teams 활동 모듈 가져오기Teams Task Module Fetch.
task/submittask/submit OnTeamsTaskModuleSubmitAsync Teams 활동 모듈 제출Teams Task Module Submit.

다음 단계Next steps

Teams 봇을 발드하려면 Microsoft Teams 개발자 설명서를 참조하세요.For building Teams bots, refer to Microsoft Teams Developer documentation.