다음을 통해 공유


Microsoft Teams 봇 작동 방식

적용 대상: SDK v4

이 문서는 봇의 작동 방식과 이벤트 기반 대화에서 배운 내용을 기반으로 합니다. 계속하기 전에 이러한 문서를 숙지해야 합니다.

Microsoft Teams에 대해 개발된 봇의 주요 차이점은 활동의 처리 방식입니다. Teams 활동 처리기는 더 일반적인 활동 유형을 처리하기 전에 활동 처리기에서 파생되고 Teams 특정 활동 유형을 처리합니다.

참고 항목

Bot Framework JavaScript, C#및 Python SDK는 계속 지원되지만 Java SDK는 2023년 11월에 종료되는 최종 장기 지원으로 사용 중지됩니다.

Java SDK를 사용하여 빌드된 기존 봇은 계속 작동합니다.

새 봇 빌드의 경우 Microsoft Copilot Studio를 사용하고 올바른 부조종사 솔루션 선택에 대해 알아봅니다.

자세한 내용은 봇 빌드의 미래를 참조 하세요.

Teams 활동 처리기

Teams용 봇을 만들려면 Teams 활동 처리기 클래스에서 봇을 파생합니다. 이러한 봇은 활동을 받으면 다양한 활동 처리기를 통해 활동을 라우팅합니다. 초기 기본 처리기는 턴 처리 이며 활동의 형식에 따라 작업을 처리기로 라우팅합니다. 턴 처리기는 수신된 특정 유형의 작업을 처리하도록 설계된 처리기를 호출합니다. Teams 활동 처리기 클래스는 활동 처리기 클래스에서 파생됩니다. 활동 처리기가 처리할 수 있는 활동 유형 외에도 Teams 활동 처리기 클래스에는 Teams 특정 활동에 대한 추가 처리기가 포함됩니다.

Teams 활동 처리기에서 파생되는 봇은 활동 처리기 클래스에서 직접 파생되는 봇과 비슷합니다. 그러나 Teams는 활동에 추가 정보를 conversationUpdate 포함하고 Teams 관련 invoke 활동과 event 활동을 보냅니다.

Teams 활동 처리기-봇이 메시지 활동을 수신하는 경우 턴 처리기는 들어오는 메시지 활동을 OnMessageActivityAsync 해당 처리기로 라우팅합니다( 활동 처리기 기반 봇의 방식과 유사). 그러나 Teams 봇이 대화 업데이트 활동을 받으면 Teams 버전의 OnConversationUpdateActivityAsync 처리기가 활동을 처리합니다.

대부분의 Teams 특정 활동 처리기에 대한 기본 구현은 없습니다. 이러한 처리기를 재정의하고 봇에 적절한 논리를 제공해야 합니다.

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

이러한 Teams 특정 활동 처리기에 대한 논리를 구현하려면 봇에서 메서드를 재정의합니다.

Teams-봇 논리

봇 논리는 하나 이상의 봇 채널에서 들어오는 활동을 처리하고 응답에서 나가는 활동을 생성합니다. Teams 활동 처리기 클래스에서 파생된 봇은 여전히 마찬가지입니다. 이 클래스는 먼저 Teams 활동을 확인한 다음 다른 모든 활동을 Bot Framework의 활동 처리기에 전달합니다.

Teams 설치 업데이트 활동

설치 업데이트 이벤트에 대한 처리기를 추가하여 봇이 다음을 수행할 수 있도록 합니다.

  • 대화 스레드에 설치될 때 소개 메시지를 보냅니다.
  • 스레드에서 제거된 사용자 및 스레드 데이터를 정리합니다.

자세한 내용은 Teams 문서의 설치 업데이트 이벤트를 참조하세요.

Teams 대화 업데이트 활동

다음 표에서는 봇에서 대화 업데이트 작업을 생성하는 Teams 이벤트를 나열합니다. Microsoft Teams 대화 업데이트 이벤트 문서에서는 이러한 각 이벤트를 사용하는 방법을 설명합니다.

다음은 Teams 활동 처리기의 메서드에서 호출된 OnConversationUpdateActivityAsync 모든 Teams 활동 처리기 목록입니다.

EventType 처리기 조건 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의 대화형 봇을 위한 것입니다.

Teams 활동 처리기에서 OnEventActivityAsync 호출된 Teams 관련 이벤트 활동 처리기입니다.

이벤트 유형 처리기 설명
application/vnd.microsoft.meetingEnd OnTeamsMeetingEndAsync 봇은 방금 종료된 모임과 연결됩니다.
application/vnd.microsoft.meetingStart OnTeamsMeetingStartAsync 봇은 방금 시작된 모임과 연결됩니다.

Teams 호출 활동

다음 표에서는 Teams가 봇에 보내는 Teams별 호출 활동을 나열합니다. 나열된 호출 활동은 Teams의 대화형 봇을 위한 것입니다. 또한 Bot Framework SDK는 메시징 확장과 관련된 호출도 지원합니다. 자세한 내용은 Teams 메시징 확장 프로그램 문서를 참조하세요.

참고 항목

Microsoft Teams 플랫폼 설명서 및 TeamsJS(Teams JavaScript 클라이언트 라이브러리)는 작업 모듈을 모달 대화 상자로 참조합니다. 자세한 내용은 대화 상자를 참조하세요.

다음은 Teams 활동 처리기에서 OnInvokeActivityAsync 호출된 모든 Teams 활동 처리기 목록입니다.

호출 형식 처리기 설명
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Teams O365 커넥터 카드 작업
CardAction.Invoke OnTeamsCardActionInvokeAsync Teams 카드 작업 호출
fileConsent/invoke OnTeamsFileConsentAcceptAsync Teams 파일 동의를 수락합니다.
fileConsent/invoke OnTeamsFileConsentAsync Teams 파일 동의
fileConsent/invoke OnTeamsFileConsentDeclineAsync Teams 파일 동의
signin/verifyState OnTeamsSigninVerifyStateAsync Teams 로그인 확인 상태.
task/fetch OnTeamsTaskModuleFetchAsync Teams 작업 모듈 인출.
task/submit OnTeamsTaskModuleSubmitAsync Teams 활동 모듈 제출

다음 단계

Teams 봇을 빌드하려면 Microsoft Teams 개발자 설명서를 참조하세요.