Microsoft Teams 내보내기 API를 통해 콘텐츠 내보내기Export content with the Microsoft Teams Export APIs

Teams 내보내기 API를 사용하면 Microsoft Teams에서 1:1, 그룹 채팅 및 채널 메시지를 내보낼 수 있습니다.Teams Export APIs allow you to export 1:1, group chat, and channel messages from Microsoft Teams. 조직에서 Microsoft Teams 메시지를 내보내야 하는 경우 Teams 내보내기 API를 사용하여 메시지를 추출할 수 있습니다.If your organization needs to export Microsoft Teams messages, you are able to extract them using Teams Export APIs. 채팅 메시지는 채널 또는 채팅 내의 개별 채팅 메시지를 나타 내는 것입니다.Chat Message represents an individual chat message within a channel or chat. 채팅 메시지는 루트 채팅 메시지 또는 채팅 메시지의 replyToId 속성에 의해 정의된 회신 스레드의 일부일 수 있습니다.The chat message can be a root chat message or part of a reply thread that is defined by the replyToId property in the chat message.

이러한 내보내기 API를 사용하는 방법에 대한 몇 가지 예는 다음과 같습니다.Here are some examples on how you can use these export APIs:

  • 예제 1: 조직에서 Microsoft Teams를 사용하도록 설정하고 특정 사용자 또는 팀의 날짜 범위를 전달하여 모든 Microsoft Teams 메시지를 프로그래밍으로 최신으로 내보내고 싶은 경우Example 1: If you have enabled Microsoft Teams in your organization and want to export all the Microsoft Teams messages to date programmatically by passing the date range for a given user or team.
  • 예제 2: 날짜 범위를 제공하여 매일 모든 사용자 또는 팀 메시지를 프로그래밍으로 내보내는 경우Example 2: If you want to programmatically export all user or team messages daily by providing a date range. API 내보내기에서는 지정한 날짜 범위 동안 생성되거나 업데이트된 모든 메시지를 검색할 수 있습니다.Export APIs can retrieve all the messages created or updated during the given date range.

Teams 내보내기 API에서 지원되는 것은 무엇입니까?What is supported by the Teams Export APIs?

  • Teams 메시지 대량 내보내기: Teams 내보내기 API는 테넌트당 앱당 최대 200 RPS 및 애플리케이션에 대해 600 RPS를 지원하며, 이러한 제한으로 Teams 메시지를 대량으로 내보낼 수 있습니다.Bulk Export of Teams Message: Teams Export APIs support up to 200 RPS Per App Per tenant and 600 RPS for an Application, with these limits you should be able to bulk export of Teams messages.

  • 애플리케이션 컨텍스트: Microsoft Graph를 호출하려면 앱이 Microsoft ID 플랫폼에서 액세스 토큰을 획득해야 합니다.Application Context: To call Microsoft Graph, your app must acquire an access token from the Microsoft identity platform. 액세스 토큰에는 앱에 대한 정보와 Microsoft Graph를 통해 사용할 수 있는 리소스 및 API에 대한 권한이 포함되어 있습니다.The access token contains information about your app and the permissions it has for the resources and APIs available through Microsoft Graph. 액세스 토큰을 얻습니다. 앱을 Microsoft ID 플랫폼에 등록하고 필요한 Microsoft Graph 리소스에 액세스하기 위해 사용자 또는 관리자가 권한을 부여해야 합니다.To get an access token, your app must be registered with the Microsoft identity platform and be authorized by either a user or an administrator for access to the Microsoft Graph resources it needs.

    토큰을 얻기 위해 Microsoft ID 플랫폼과 앱을 통합하는 데 이미 익숙한 경우 다음 단계 섹션에서 Microsoft Graph에 대한 정보와 샘플을 참조하세요.If you are already familiar with integrating an app with the Microsoft identity platform to get tokens, see the Next Steps section for information and samples specific to Microsoft Graph.

  • 하이브리드 환경: API 내보내기에서는 하이브리드 환경(-프레미스 Exchange 및 Teams)에 프로비전된 사용자가 보낸 메시지를 지원합니다.Hybrid Environment: Export APIs support messages sent by users who are provisioned on Hybrid Environment (on-premises Exchange and Teams). 하이브리드 환경에 대해 구성된 사용자가 보낸 모든 메시지는 내보내기 API를 사용하여 액세스할 수 있습니다.Any messages that are sent by users who are configured for hybrid environment will be accessible using Export APIs.

  • 사용자가 삭제한 메시지: Teams 클라이언트에서 사용자가 삭제한 메시지는 삭제 후 최대 30일 동안 API 내보내기 기능을 사용하여 액세스할 수 있습니다.User Deleted Messages: Messages that are deleted by user from Teams client can be accessed using export APIs up to 30 days from the time of deletion.

  • 메시지 첨부 파일: API 내보내기에는 메시지의 일부로 전송되는 첨부 파일에 대한 링크가 포함됩니다.Message Attachments: Export APIs include the links to the attachments that are sent as part of messages. API 내보내기 기능을 사용하여 메시지에 첨부된 파일을 검색할 수 있습니다.Using Export APIs you can retrieve the files attached in the messages.

  • 채팅 메시지 속성: Teams 내보내기 API가 지원하는 속성의 전체 목록을 참조하세요.Chat Message Properties: Refer to the complete list of properties that Teams Export APIs support here.

Teams 내보내기 API에 액세스하는 방법How to access Teams Export APIs

  • 예제 1은 필터 없이 사용자 또는 팀의 모든 메시지를 검색하는 간단한 쿼리입니다.Example 1 is a simple query to retrieve all the messages of a user or team without any filters:

    GET https://graph.microsoft.com/beta/users/{id}/chats/getallMessages
    
    GET https://graph.microsoft.com/beta/teams/{id}/channels/getallMessages
    
  • 예제 2는 날짜 시간 필터 및 상위 50개 메시지를 지정하여 사용자 또는 팀의 모든 메시지를 검색하는 샘플 쿼리입니다.Example 2 is a sample query to retrieve all the messages of a user or team by specifying date time filters and top 50 messages:

    GET https://graph.microsoft.com/beta/users/{id}/chats/getallMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
    
    GET https://graph.microsoft.com/beta/teams/{id}/channels/getallMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
    

참고

API는 여러 결과의 경우 다음 페이지 링크가 있는 응답을 반환합니다.The API returns response with next page link in case of multiple results. 다음 결과 집합을 얻습니다. @odata.nextlink의 URL에서 GET을 호출하면 됩니다.For getting next set of results, simply call GET on the url from @odata.nextlink. @odata.nextlink가 존재하지 않는 경우 또는 null이면 모든 메시지가 검색됩니다.If @odata.nextlink is not present or null then all messages are retrieved.

Teams 내보내기 API에 액세스하기 위한 전제적 요구Prerequisites to access Teams Export APIs

  • Teams 내보내기 API는 현재 미리 보기로 제공됩니다.Teams Export APIs are currently in preview. API에 필요한 라이선스가 있는 사용자 및 테넌트만 사용할 수 있습니다.It will only be available to users and tenants that have the required licenses for APIs. 향후 Microsoft는 사용자 또는 고객이 API를 통해 액세스하는 데이터의 양에 따라 추가 요금을 지불해야 할 수 있습니다.In the future, Microsoft may require you or your customers to pay additional fees based on the amount of data accessed through the API.

  • 중요한 데이터에 액세스하는 Microsoft Graph의 Microsoft Teams API는 보호된 API로 간주됩니다.Microsoft Teams APIs in Microsoft Graph that access sensitive data are considered protected APIs. API 내보내기 기능을 사용하려면 사용 권한 및 동의 이외에 추가 유효성 검사가 필요합니다.Export APIs require that you have additional validation, beyond permissions and consent, before you can use them. 이러한 보호된 API에 대한 액세스를 요청하기 위해 요청 양식을 작성합니다.To request access to these protected APIs, complete the request form.

  • 애플리케이션 권한은 로그인한 사용자가 없는 실행 앱에서 사용됩니다. 애플리케이션 권한은 관리자만 동의할 수 있습니다.Application permissions are used by apps that run without a signed-in user present; application permissions can only be consented by an administrator. 다음 권한이 필요합니다.The following permissions are needed:

    • Chat.Read.All: 모든 1:1 및 그룹 채팅 메시지에 액세스할 수 있습니다.Chat.Read.All: enables access to all 1:1 and Group chat messages
    • User.Read.All: 테넌트에 대한 사용자 목록에 액세스할 수 있습니다.User.Read.All: enables access to the list of users for a tenant

JSON 표현JSON representation

다음 예제는 리소스의 JSON 표현입니다.The following example is a JSON representation of the resource:

네임스페이스: microsoft.graphNamespace: microsoft.graph

{
"id": "string (identifier)",
"replyToId": "string (identifier)",
"from": {"@odata.type": "microsoft.graph.identitySet"},
"etag": "string",
"messageType": "string",
"createdDateTime": "string (timestamp)",
"lastModifiedDateTime": "string (timestamp)",
"deletedDateTime": "string (timestamp)",
"subject": "string",
"from": {
                "application": null,
                "device": null,
                "conversation": null,
                "user": {
                    "id": "string (identifier)",
                    "displayName": "string",
                    "userIdentityType": "aadUser"                }
            },
"body": {"@odata.type": "microsoft.graph.itemBody"},
"summary": "string",
"chatId": "string (identifier)"
"attachments": \[{"@odata.type": "microsoft.graph.chatMessageAttachment"}\],
"mentions": \[{"@odata.type": "microsoft.graph.chatMessageMention"}\],
"importance": "string",
"locale": "string",
}

참고

chatMessage 리소스에 대한 자세한 내용은 chatMessage 리소스 종류 문서를 참조하세요.For more details on chatMessage resource, see the chatMessage resource type article.