Teams エクスポート API を使用すると、1 対 1、グループ チャット、会議チャット、チャネル メッセージを Microsoft Teams からエクスポートできます。 organizations で Microsoft Teams メッセージをエクスポートする必要がある場合は、Teams Export API を使用してメッセージを抽出できます。 Chat Message は、チャネルまたはチャット内の個々のチャット メッセージを表します。 チャット メッセージは、ルート チャット メッセージでも、チャット メッセージの replyToId プロパティによって定義された返信スレッドの一部でもかまいません。
これらのエクスポート API の使用方法の例を次に示します:
例 1: organization で Microsoft Teams を有効にし、特定のユーザーまたはチームの日付範囲を渡すことで、すべての Microsoft Teams メッセージをプログラムでエクスポートする場合。
例 2: 日付範囲を指定することで、すべてのユーザーまたはチーム メッセージをプログラムで毎日エクスポートする場合。 エクスポート API は、指定された日付範囲に作成または更新されたすべてのメッセージを取得できます。
例 3: 特定の会議開催者の Teams 会議レコーディングへのリンクをプログラムでエクスポートし、実際のレコーディングをダウンロードする場合。
例 4: 特定の会議開催者の Teams 会議トランスクリプトへのリンクをプログラムでエクスポートし、実際のトランスクリプトをダウンロードする場合。
Teams エクスポート API では何がサポートされていますか?
Teams メッセージの一括エクスポート:「Teams エクスポート API の調整制限」を参照してください。 これらの制限を使用すると、Teams メッセージを一括エクスポートできます。
Teams メッセージの上限: Teams メッセージ API の TOP フィルター制限は、パフォーマンスが制限される最大制限として 250 に設定することをお勧めします。
注意
$top値は最大ヒントであり、保証ページ サイズではありません。 複数の基になる Outlook フォルダー/メールボックスからメッセージを取得する方法により、応答が返されるアイテム数が要求よりも少ない場合があり、他のフォルダーからの取得を続行するための @odata.nextLink が含まれる場合があります。 この動作は仕様です。
アプリケーション コンテキスト: Microsoft Graph を呼び出すには、アプリが Microsoft ID プラットフォームからアクセス トークンを取得する必要があります。 アクセス トークンには、アプリに関する情報と、Microsoft Graph を介して利用できるリソースと API に対するアクセス許可が含まれています。 アクセス トークンを取得するには、アプリを Microsoft ID プラットフォームに登録する必要があります。 ユーザーまたは管理者によって、必要な Microsoft Graph リソースへのアクセスが許可されている必要があります。 アプリを Microsoft ID プラットフォームと統合してトークンを取得することに既に精通している場合は、「次のステップ」セクションで Microsoft Graph に固有の情報とサンプルを参照してください。
ハイブリッド環境: エクスポート API は、ハイブリッド環境 (オンプレミスの Exchange および Teams) でプロビジョニングされているユーザーによって送信されるメッセージをサポートします。 ハイブリッド環境用に構成されたユーザーから送信されたメッセージには、エクスポート API を使用してアクセスできます。
ユーザーが削除したメッセージ: ユーザーが Teams クライアントから削除したメッセージには、削除時点から最大 21 日間、エクスポート API を使用してアクセスできます。
メッセージの添付ファイル: エクスポート API には、メッセージで送信されたファイルの添付ファイル情報が含まれます。 添付ファイルは、メタデータとして表示されるほか、場合によってはメッセージ本文内のリンク (ASM URL など) として表示される場合もあります。 本文に埋め込まれた URL には直接アクセスできない可能性があるため、添付ファイルを取得するには、メッセージの
attachmentsコレクションを使用する必要があります。反応 エクスポート API は、Teams メッセージでユーザーが開始したリアクションをサポートします。 現在サポートされているリアクションは、ハート、怒り、いいね、悲しみ、驚き、笑いです。 リアクションに加えて、エクスポート API では、メッセージのリアクションに加えられた変更や更新を含むリアクション編集履歴もサポートされています。
注意
色の変更でカスタマイズされたリアクションは、現在エクスポート API ではサポートされていません。
チャネル メッセージを共有する: エクスポート API は、共有チャネルからのメッセージのキャプチャをサポートします。
削除済みのチーム: エクスポート API は、削除された日から最大 30 日間、 削除されたチーム および削除された標準、プライベート、および共有チャネルからのメッセージのキャプチャをサポートしています。 30 日が経過すると、チームとチャネルはハード削除され、メッセージを取得できなくなります。
削除されたユーザー: エクスポート API では、ユーザーが削除されてから最大 30 日以内の削除されたユーザーに関するメッセージのキャプチャがサポートされます。 削除されたユーザーの一覧を見つけるには、「 削除済みアイテム」を参照してください。
非アクティブなユーザー: エクスポート API は、非アクティブ ユーザーが非アクティブになってから最大 30 日間の非アクティブ ユーザーのメッセージのキャプチャをサポートします。 非アクティブなメールボックスの一覧を見つけるには、「 非アクティブなメールボックス」を参照してください。
Chat メッセージのプロパティ:Teams エクスポート API がサポートするプロパティの完全な一覧を参照してください。
制御メッセージ: エクスポート API では、ユーザーが生成したメッセージに加えて、制御メッセージのキャプチャがサポートされています。 制御メッセージは、Teams クライアントに表示されるシステム生成メッセージです。 タイムスタンプとともに、「ユーザー A がユーザー B をチャットに追加し、すべてのチャット履歴を共有しました」などの重要な情報が記載されています。 システム メッセージを使用すると、発信者はチーム、チャネル、またはチャットで発生したイベントに関する洞察を得ることができます。 エクスポート API が現在サポートしている 制御メッセージの一覧 を参照してください。
チャットとチャネルでのメッセージのエクスポートについて詳しくは、こちらをご覧ください。
注意
現在、会議関連の制御メッセージは、エクスポート API ではサポートされていません。
編集履歴:テナントが Teams アイテム保持ポリシーを使用して設定されている場合、エクスポート API は、個人およびグループ チャットのメッセージの編集履歴、およびパブリック チャネルと共有チャネルでの投稿とコメントのキャプチャをサポートします。
Teams のアイテム保持ポリシーの詳細については、「 Microsoft Teams のアイテム保持ポリシーの管理 」を参照してください。
会議のトランスクリプト: 指定したユーザーが開催者であるスケジュール済みのオンライン会議インスタンスから、すべてのトランスクリプトを取得します。 この API は現在、プライベートのスケジュールされた会議のみをサポートしています。
会議のトランスクリプトのエクスポートの詳細について説明します。
会議の記録: 指定したユーザーが開催者であるスケジュール済みのオンライン会議インスタンスからすべてのレコーディングを取得します。 この API は現在、プライベートのスケジュールされた会議のみをサポートしています。
会議のレコーディングのエクスポートについて詳しく知る。
対象となるメッセージ: エージェントまたはボットからユーザーに送信されたメッセージは、24 時間後にクライアントから消去された後でもエクスポートできます。 ターゲット メッセージをエクスポートする方法とターゲット メッセージを削除する方法を参照してください。
Teams エクスポート API にアクセスする方法
例 1 は、ユーザーまたはチームのすべてのメッセージをフィルターなしで取得する単純なクエリです。
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessagesGET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages例 2 は、日時フィルターと上位 50 件のメッセージを指定して、ユーザーまたはチームのすべてのメッセージを取得するサンプル クエリです。
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413ZGET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z例 3 は、ユーザーの利用可能なすべての Teams 会議のレコーディングへのリンクを取得するサンプル クエリです。 日付範囲のフィルター処理がサポートされています。 TOP n フィルターは、Chat メッセージと同様にサポートされています。
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer/User/Id eq ‘{id}’GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})例 4 は、ユーザーの利用可能なすべての Teams 会議のトランスクリプトへのリンクを取得するサンプル クエリです。 日付範囲のフィルター処理がサポートされています。 TOP n フィルターは、Chat メッセージと同様にサポートされています。
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer/User/Id eq ‘{id}’GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})例 5 は、最初にユーザーのすべての利用可能な文字起こし済み Teams 会議を取得してから、すべての利用可能な AI 分析情報を取得する、チェーンされたクエリのサンプルです。
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer/User/Id eq '{id}'次に、上記の要求によって返された各
meetingIdのAI 分析情報を取得します。GET https://graph.microsoft.com/v1.0/copilot/users/{id}/onlineMeetings/{meetingId}/aiInsights注意
複数の結果がある場合、API は次のページ リンクを含む応答を返します。 次の結果セットを取得するには、 @odata.nextlink からの URL に対して GET を呼び出します。 @odata.nextlink が存在しないか null の場合は、すべてのメッセージが取得されます。
注意
応答内のメッセージの順序は、createdDateTime や lastModifiedDateTime などの日時で並べ替えられることは保証されません。
Teams エクスポート API にアクセスするための前提条件
機密データにアクセスする Microsoft Graph の Microsoft Teams API は、保護された API と見なされます。 ユーザー なしでアクセス するための要件が満たされている場合、これらの API を呼び出すことができます。
アプリケーションのアクセス許可は、サインインしているユーザーなしで実行されるアプリによって使用されます。 管理者のみがアプリケーションのアクセス許可を承認できます。 以下のアクセス許可が必要です。
Chat.Read.All: すべての 1 対 1、グループ チャット、会議チャット メッセージにアクセスできます。
ChannelMessage.Read.All: すべてのチャネル メッセージへのアクセスを有効にします。
User.Read.All: テナントのユーザーの一覧へのアクセスを有効にします。
OnlineMeetingTranscript.Read.All: すべての 1 対 n のスケジュールされた Teams 会議のトランスクリプトへのアクセスを有効にします。
OnlineMeetingRecording.Read.All: すべての 1 対 n のスケジュールされた Teams 会議のレコーディングへのアクセスを有効にします。
Teams エクスポート API のライセンス要件
Microsoft Teams エクスポート API を使用するには、組織には、データをエクスポートするユーザーにアクティブな Microsoft Teams ライセンスが割り当てられている必要があります。
注意
Microsoft Teams Export API を使用する場合、Microsoft Purview データ損失防止 (DLP) サービス プランや追加の DLP ライセンスは必要ありません。
エクスポート API は、Microsoft Purview DLP 機能とは独立して動作し、Microsoft Graph エクスポート API を介したデータ アクセスをサポートする適切な Teams ライセンスを持つテナントが使用できます。
| パートナー名 | パートナー ソリューション |
|---|---|
|
Microsoft Teams アーカイブとコンプライアンス |
|
Proofpoint Content Capture for Microsoft Teams |
次のパートナーが認定されています。 企業は、企業内でこれらのパートナーのいずれかと組み合わせて使用することを選択できます。
| パートナー名 | パートナー ソリューション |
|---|---|
|
Microsoft Teams のバックアップと復元 |
|
Microsoft Teams のバックアップと復元 |
次の手順
サーティフィケーション プログラムへの参加を検討しているベンダーは、次の手順として このフォーム に記入してください。 さらにコンテキストと詳細を提供する必要がある場合は、MS Teams エコシステム チーム (TeamsCategoryPartner@microsoft.com) にメールで送信してください。
評価モード (既定)
モデル宣言では、評価目的で各要求アプリケーションごとに使用量が制限された API にアクセスできることはありません。
JSON 表現
次の例は、チャット リソースの JSON 表現です。
名前空間: 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": [{"@odata.type": "microsoft.graph.user"}], "displayName": "User Name", "userIdentityType": "aadUser" } }, "body": {"@odata.type": "microsoft.graph.itemBody"}, "summary": "string", "chatId": [{"@odata.type": "microsoft.graph.chat"}] "attachments": [{"@odata.type": "microsoft.graph.chatMessageAttachment"}], "mentions": [{"@odata.type": "microsoft.graph.chatMessageMention"}], "importance": "string", "locale": "string", }注意
chatMessage リソースの詳細については、 chatMessage リソースの種類 に関する記事を参照してください。
次の例は、記録リソースの JSON 表現です。
名前空間: microsoft.graph
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(meetingRecording)", "@odata.count": 2, "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer%2fUser%2fId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d", "value": [ { "@odata.type": "#microsoft.graph.meetingRecording", "id": "6263af16-b660-41d0-a17b-83fbd15a39c7", "meetingId": "MSoxMjczYTAxNi0yMDFkRLTmOTUtODA5My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1BBXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", "meetingOrganizerId": "{userId}", "createdDateTime": "2022-08-03T20:43:36.2573447Z", "recordingContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/recordings/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content" }, { "@odata.type": "#microsoft.graph.meetingRecording", "id": "{recordingId}", "meetingId": "{meetingId}", "meetingOrganizerId": "{userId}", "createdDateTime": "2022-08-03T20:44:11.2635254Z", "recordingContentUrl": " https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content" }, ] }詳細は次のとおりです。
<id>単一の記録を表します。<meetingId>会議識別子または通話識別子を表します。<meetingOrganizer/user/id>会議の開催者を表します。<createdDateTime>会議の開始時刻を示します。<recordingContentUrl>値は、レコーディング コンテンツへの URL を示します。録音は MP4 形式です。
レコーディング コンテンツ自体の平均サイズは、30 分から 60 分の範囲の会議で見られる平均値に基づく、ディスク上の約 350 MB です。
結果が
createdDateTimeで並べ替えられることは保証されません。 ただし、1 つの会議に複数のレコーディングが存在する場合、それらは同じmeetingId値を共有します。 さらに、複数の記録のエントリは、問題の会議に対して正しく順序付けられています。関連する会議の記録が利用可能になった後にのみ結果が表示されることが保証されます。 つまり、呼び出し元は、可用性のための他のポーリングを必要としません。
結果のページ分割は、Teams Export API の現在のパターンでサポートされています。 ページネーションは、応答に
@oData.nextLinkプロパティがあることでサポートされます。 nextLink プロパティには、次の表に示すようなskipToken値が含まれています。skipTokenが存在しない場合は、現在のバッチで取得できる結果がこれ以上ないことを意味します。要求 応答 @nextLink 注釈 /getAllRecordingsカウント: 10 ?skipToken=ABC初期要求なし skipToken/getAllRecordings?skipToken=ABCカウント: 10 ?skipToken=DEFSkipToken返されました。次のページの取得を要求する/getAllRecordings?skipToken=DEFカウント: 7 skipTokenなし、これ以上のデータなし$topパラメーターは、Teams Export API の現在のパターンに従ってもサポートされています。DeltaTokenは、変更の追跡と同期のシナリオを有効にします。 既存のデルタ クエリの概要と例については、「デルタ クエリを使用して Microsoft Graph データの変更を追跡する」を参照してください。次の API を使用して、GET
getAllRecordingsAPI の応答で取得した選択したuserId、meetingId、およびrecordingIdの実際の記録コンテンツを取得できます。 これは、記録の内容を返します:GET users('{userId}')/onlineMeetings('{meetingId}')/recordings('{recordingId}')/content
次の例は、トランスクリプト リソースの JSON 表現です。
名前空間: microsoft.graph
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(callTranscript)", "@odata.count": 2, "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer%2fUser%2fId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d", "value": [ { "@odata.type": "#microsoft.graph.callTranscript", "id": "MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh", "meetingId": "MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", "meetingOrganizerId": "{userId}", "transcriptContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/transcripts/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content", "createdDateTime": "2022-08-03T20:43:36.6248355Z" }, { "@odata.type": "#microsoft.graph.callTranscript", "id": "{transcriptId}", "meetingId": "{meetingId}", "meetingOrganizerId": "{userId}", "transcriptContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content", }, ] }詳細は次のとおりです。
<id>単一の記録を表します。<meetingId>会議識別子または通話識別子を表します。<meetingOrganizer/user/id>会議の開催者を表します。<createdDateTime>会議の開始時刻を示します。<transcriptContentUrl>値は、トランスクリプト コンテンツへの URL を示します。既定では、トランスクリプトのコンテンツは VTT 形式です。 ただし、
application/vnd.openxmlformats-officedocument.wordprocessingml.documentの Accept ヘッダー値を使用すると、DOCX 形式を取得することもできます。JSON/VTT 形式のトランスクリプト コンテンツ自体の平均サイズは約 300 KB です。これは、30 分から 60 分の範囲の会議で見られる平均に基づいています。
結果が
createdDateTimeで並べ替えられることは保証されません。 ただし、1 つの会議に複数のレコーディングが存在する場合、それらは同じmeetingId値を共有します。 さらに、複数の記録のエントリは、問題の会議に対して正しく順序付けられています。関連する会議の記録が利用可能になった後にのみ結果が表示されることが保証されます。 つまり、呼び出し元は、可用性のための他のポーリングを必要としません。
結果のページ分割は、Teams エクスポート API の現在のパターンに従ってサポートされています。 ページネーションは、応答に
@oData.nextLinkプロパティが存在することによってサポートされます。 次の表に示すように、nextLinkプロパティにはskipToken値が含まれています。skipTokenが存在しない場合は、現在のバッチで取得できる結果がこれ以上ないことを意味します。要求 応答 @nextLink 注釈 /getAllTranscriptsカウント: 10 ?skipToken=ABC初期要求なし skipToken/getAllTranscripts?skipToken=ABCカウント: 10 ?skipToken=DEFSkipToken返されました。次のページの取得を要求する/getAllTranscripts?skipToken=DEFカウント: 7 skipTokenなし、これ以上のデータなし$topパラメーターは、Teams Export API の現在のパターンに従ってもサポートされています。DeltaTokenは、変更の追跡と同期のシナリオを有効にします。 既存のデルタ クエリの概要と例については、「 デルタ クエリを使用して Microsoft Graph データの変更を追跡する」を参照してください。次の API を使用して、GET getAllTranscripts API の応答で取得された、選択した userId、meetingId、transcriptId の実際のトランスクリプト コンテンツを取得できます。 記録の内容を返します。
GET users('{userId}')/onlineMeetings('{meetingId}')/transcripts('{transcriptId}')/content
詳細については、「 グラフ API を使用してトランスクリプトを取得する」を参照してください。
エクスポート API フィルター
Teams Graph Service でホストされているエクスポート API users/{userId}/chats/getAllMessagesを使用して、Substrate ユーザー メールボックスからすべてのユーザー メッセージを取得します。 エクスポート API は、ユーザーの送受信メッセージの両方を取得します。これにより、チャット スレッド内のすべてのユーザーに対して API を呼び出すときに重複するメッセージがエクスポートされます。
エクスポート API には、チャット スレッドに対して返されるメッセージを最適化するのに役立つフィルター パラメーターがあります。 API GET は、送信されたユーザー、ボット、アプリケーション、およびシステム イベント メッセージに基づいてメッセージを抽出する方法を可能にする新しいフィルター パラメーターをサポートします。 フィルター パラメーターは、次の方法で送信されるメッセージをサポートします。
確認できます (同じ要求で複数のユーザー ID がサポートされています)。
アプリケーション (ボット、コネクタなど)。
emailUser と unknownFutureValue を除くすべての userIdentityTypes 。
システム イベント メッセージ (制御メッセージ)。
これらのパラメーターは、要求の $filterの一部です。 これらのパラメーターのいずれも要求に存在しない場合は、指定されたユーザー チャットに存在するすべてのユーザーからのメッセージが返されます。
サポートされているフィルター処理のシナリオを次に示します。
$filter=from/application/applicationIdentityType eq '<appType>' (bots/tenantBots/connectors, etc.)
$filter=from/user/id eq '<oid>' (any number of id filters)
$filter=from/user/userIdentityType eq '<userIdentityType>'
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' (sent by app or userid)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' (sent by app or anonymous)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'federatedUser' (sent by app or federated)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by app, anonymous or federated)
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' (sent by any number of userid or anonymous)
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous) or messageType eq 'systemEventMessage'
(<any of the previous filters>) and (lastModifiedDateTime+gt+<date>+and+lastModifiedDateTime+lt+<date>)
このクエリは、指定されたユーザーが送信したメッセージを返します (
from/user/id eq ‘{oid}’が存在する場合)。このクエリは、ユーザー チャットの一部であるフェデレーション ユーザーによって送信されたメッセージを返します (
from/user/userIdentityType eq ‘federatedUser’が存在する場合)。from/application/applicationIdentityType eq '{appType}'が存在する場合、クエリは指定されたアプリケーションの種類によって送信されたメッセージを返します。クエリは、
messageType eq 'systemEventMessage'が存在する場合にシステムによって送信されたメッセージを返します。
これらのパラメーターは、OR 演算子を使用するか、 lastModifiedDateTime$filter パラメーターと組み合わせることによって組み合わせることができます。
Teams による、保持メッセージ用の API のエクスポート
テナントが Teams アイテム保持ポリシーを使用して設定されている場合、エクスポート API は、個々の & グループ チャットの保留フォルダーからのメッセージ、およびパブリック チャネル & 共有チャネルでの投稿、コメントのキャプチャをサポートします。
Retained Messages API へのアクセス方法
例 1 は、ユーザーのすべての保持メッセージを取得する単純なクエリです。
GET https://graph.microsoft.com/v1.0/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/chats/getAllRetainedMessages例 2 は、チームのすべての保持メッセージを取得する単純なクエリです。
GET https://graph.microsoft.com/v1.0/teams/8b081ef6-4792-4def-b2c9-c363a1bf41d5/channels/getAllRetainedMessages
getAllRetainedMessages API でサポートされる内容
- メッセージがチャットまたはチャネルのユーザーによって論理的に削除される ユーザーが保留中の場合は、21 日間の削除期間を過ぎると、API を介してメッセージをエクスポートできます。
- メッセージがチャットまたはチャネルのユーザーによって論理的に削除される 有効なアイテム保持ポリシーが設定されている場合は、21 日間の削除期間を超えて、API を使用してメッセージをエクスポートできます。
- メッセージがチャットまたはチャネルのユーザーによって編集される 有効なアイテム保持ポリシーが設定されている場合は、以前に編集したバージョンのメッセージをエクスポートできます。
注意
/getAllRetainedMessages API を使用すると、削除されたチャネル メッセージを削除した日から最大 30 日間取得できます。 30 日が経過すると、チームとチャネルはハード削除され、メッセージを取得できなくなります。
Microsoft Copilot の操作
Copilot の対話のエクスポートを可能にする aiInteractionHistory: getAllEnterpriseInteractions の詳細について説明します。