Teams Export API を使用すると、1:1、グループ チャット、会議チャット、チャネル メッセージをMicrosoft Teamsからエクスポートできます。 organization Microsoft Teamsメッセージをエクスポートする必要がある場合は、Teams エクスポート API を使用して抽出できます。 チャット メッセージ は、 チャネル またはチャット内の個々のチャット メッセージを表 します。 チャット メッセージには、ルート チャット メッセージ、またはチャット メッセージの 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 に設定することをお勧めします。
- アプリケーション コンテキスト: Microsoft Graph を呼び出すには、アプリがMicrosoft ID プラットフォームからアクセス トークンを取得する必要があります。 アクセス トークンには、アプリに関する情報と、Microsoft Graph で使用できるリソースと API に対するアクセス許可が含まれています。 アクセス トークンを取得するには、アプリをMicrosoft ID プラットフォームに登録する必要があります。 ユーザーまたは管理者は、必要な Microsoft Graph リソースへのアクセスを承認する必要があります。 トークンを取得するためのMicrosoft ID プラットフォームとアプリの統合に既に慣れている場合は、Microsoft Graph に固有の情報とサンプルについては、「次の手順」セクションを参照してください。
- ハイブリッド環境: エクスポート API は、ハイブリッド環境 (オンプレミスの Exchange と Teams) でプロビジョニングされたユーザーによって送信されるメッセージをサポートします。 ハイブリッド環境用に構成されているユーザーから送信されたメッセージには、エクスポート API を使用してアクセスできます。
- ユーザーが削除したメッセージ: Teams クライアントからユーザーが削除したメッセージには、削除時から最大 21 日間のエクスポート API を使用してアクセスできます。
- メッセージ添付ファイル: エクスポート API には、メッセージの一部として送信された添付ファイルへのリンクが含まれます。 エクスポート API を使用すると、メッセージに添付されたファイルを取得できます。
- 反応: エクスポート API は、Teams メッセージでユーザーが開始したリアクションをサポートします。 現在サポートされている反応は、心、怒り、悲しい、驚いた、笑いです。 Export API では、リアクションに加えて、メッセージに対するリアクションに加えられた変更や更新を含む、リアクション編集履歴もサポートされています。
注意
色の変更でカスタマイズされたリアクションは、現在、Export API ではサポートされていません。
共有チャネル メッセージ: エクスポート API では、共有チャネルからのメッセージのキャプチャがサポートされています。
削除された Teams: Export API では、 削除された Teams からのメッセージのキャプチャ と、削除日から最大 30 日間の標準チャネル、プライベート チャネル、共有チャネルの削除がサポートされます。 30 日後、チームとチャネルはハード削除され、メッセージを取得できません。
削除されたユーザー: Export API では、削除されたユーザーのメッセージのキャプチャが、ユーザーが削除された時点から最大 30 日間サポートされます。 削除されたユーザーの一覧を見つけるには、「 削除済みアイテム」を参照してください。
非アクティブなユーザー: Export API では、ユーザーが非アクティブになった時点から最大 30 日間、非アクティブなユーザーのメッセージのキャプチャがサポートされます。 非アクティブなメールボックスの一覧については、「 非アクティブなメールボックス」を参照してください。
チャット メッセージのプロパティ:Teams Export API でサポートされているプロパティの完全な一覧を参照してください。
メッセージの制御: Export API では、ユーザーが生成したメッセージに加えて、制御メッセージのキャプチャがサポートされています。 コントロール メッセージは、Teams クライアントに表示されるシステム生成メッセージです。 "ユーザー A がチャットにユーザー B を追加し、すべてのチャット履歴を共有しました" などの重要な情報とタイムスタンプが含まれます。 システム メッセージを使用すると、呼び出し元は、チーム、チャネル、またはチャットで発生したイベントに関する分析情報を得ることができます。 Export API で現在サポートされている コントロール メッセージの一覧 を参照してください。
詳細については、 チャット とチャネルでのメッセージのエクスポートに関するページを 参照してください。
注意
会議関連のコントロール メッセージは現在、Export API ではサポートされていません。
編集された履歴:テナントが Teams アイテム保持ポリシーを使用して設定されている場合、Export API では、個々のチャットとグループ チャットのメッセージの編集履歴のキャプチャと、パブリック チャネルと共有チャネルでの投稿とコメントのキャプチャがサポートされます。
Teams アイテム保持ポリシーの詳細については、 Microsoft Teamsのアイテム保持ポリシーの管理 に関するページを参照してください。
会議のトランスクリプト: 指定したユーザーが開催者であるスケジュールされたオンライン会議インスタンスからすべてのトランスクリプトを取得します。 この API は現在、プライベートスケジュールされた会議のみをサポートしています。
会議のトランスクリプトのエクスポートについて詳しくは、こちらをご覧ください。
- 会議の記録: 指定したユーザーが開催者であるスケジュールされたオンライン会議インスタンスからすべての記録を取得します。 この API は現在、プライベートスケジュールされた会議のみをサポートしています。
会議の記録をエクスポートする方法について詳しくは、こちらをご覧ください。
Teams エクスポート API にアクセスする方法
例 1 は、フィルターなしでユーザーまたはチームのすべてのメッセージを取得する単純なクエリです。
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessages
GET 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.413Z
GET 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 フィルターは、チャット メッセージと同様にサポートされています。
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 フィルターは、チャット メッセージと同様にサポートされています。
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})
注意
複数の結果がある場合、API は次のページ リンクを含む応答を返します。 次の結果セットを取得するには、 @odata.nextlinkから URL で GET を呼び出します。 @odata.nextlinkが存在しない場合、または null の場合は、すべてのメッセージが取得されます。
注意
応答内のメッセージの順序は、createdDateTime や lastModifiedDateTime などの datetime で並べ替えられる保証はありません。
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 のライセンス要件
Export API では、モデル クエリ パラメーターを使用してセキュリティとコンプライアンス (S + C) と一般的な使用シナリオがサポートされます。 S+C シナリオ (モデル A) にはシード容量が含まれており、E5 サブスクリプションが必要であり、一般的な使用シナリオ (モデル B) はすべてのサブスクリプションで使用でき、従量課金のみです。 シードされた容量と消費料金の詳細については、「 Microsoft Graph Teams API のライセンスと支払いの要件」を参照してください。
ベータ API の場合、現在、モデル A またはモデル B のライセンスや使用の適用はありません。 ただし、今後、ライセンスまたは使用の適用が行われる可能性があります。
S+C/モデル A のシナリオ
これらのシナリオは、セキュリティやコンプライアンス機能を実行するアプリケーションに限定されます。 この機能を使用し、シード容量を受け取るために、ユーザーは特定の E5 ライセンスを持っている必要があります。 シード容量はユーザーごとであり、月ごとに計算され、テナント レベルで集計されます。 シードされた容量を超えて使用する場合、アプリ所有者は API の使用に対して課金されます。 モデル A は、割り当てられた E5 ライセンスを持つユーザーからのメッセージにのみアクセスできます。
パートナー名 | パートナー ソリューション |
---|---|
![]() |
Microsoft Teamsアーカイブとコンプライアンス |
![]() |
Microsoft Teamsの Proofpoint コンテンツ キャプチャ |
一般的な使用法/モデル B のシナリオ
S+C 以外のすべての関連シナリオで使用できます。ライセンス要件やシード容量はありません。 従量課金メーターが利用可能になると、アプリ所有者は毎月のすべての API 呼び出しに対して課金されます。
以下のパートナーが認定を受けています。 企業は、企業内でこれらのパートナーのいずれかと組み合わせて使用することを選択できます。
パートナー名 | パートナー ソリューション |
---|---|
![]() |
バックアップと回復の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>
は 1 つの記録を表します。<meetingId>
は、会議または通話識別子を表します。<meetingOrganizer/user/id>
は、会議の開催者を表します。<createdDateTime>
は、会議の開始時刻を示します。<recordingContentUrl>
value は、記録コンテンツへの 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=DEF
SkipToken
返された、次のページを取得するように要求する/getAllRecordings?skipToken=DEF
カウント: 7 skipToken
なし、使用できるデータはそれ以上ありません$top
パラメーターは、Teams Export API の現在のパターンに従ってサポートされます。DeltaToken
変更の追跡と同期のシナリオを有効にする方法がサポートされています。 既存のデルタ クエリの概要と例については、「デルタ クエリを使用して Microsoft Graph データの変更を追跡する」を参照してください。次の API を使用して、GET
getAllRecordings
API の応答で取得した、選択した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>
は 1 つの記録を表します。<meetingId>
は、会議または通話識別子を表します。<meetingOrganizer/user/id>
は、会議の開催者を表します。<createdDateTime>
は、会議の開始時刻を示します。<transcriptContentUrl>
value はトランスクリプト コンテンツへの URL を示します。トランスクリプト コンテンツは、既定では VTT 形式です。 ただし、
application/vnd.openxmlformats-officedocument.wordprocessingml.document
の Accept ヘッダー値を使用して、DOCX 形式を取得することもできます。JSON/VTT 形式のトランスクリプト コンテンツ自体の平均サイズは、30 分から 60 分の範囲にある会議の平均に基づいて、約 300 KB です。
結果は、
createdDateTime
で並べ替えられる保証はありません。 ただし、1 回の会議に複数の録音が存在する場合は、同じmeetingId
値を共有します。 さらに、複数の記録のエントリは、問題の会議に対して正しくシーケンスされます。結果は、関連付けられている会議の記録が使用可能な後にのみ存在することが保証されます。 つまり、呼び出し元は可用性のために他のポーリングを必要としません。
結果によるページ分割は、Teams Export API の現在のパターンに従ってサポートされます。 改ページは、応答に
@oData.nextLink
プロパティが存在する場合にサポートされます。nextLink
プロパティには、次の表に示すように、skipToken
値が含まれています。skipToken
が存在しない場合は、現在のバッチで取得する結果がそれ以上ないことを意味します。要求 応答 @nextLink 注釈 /getAllTranscripts
カウント: 10 ?skipToken=ABC
最初の要求なし skipToken
/getAllTranscripts?skipToken=ABC
カウント: 10 ?skipToken=DEF
SkipToken
返された、次のページを取得するように要求する/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
詳細については、「 Graph API を使用してトランスクリプトをフェッチする」を参照してください。
API フィルターのエクスポート
Teams Graph Service でホストされているエクスポート API は、 users/{userId}/chats/getAllMessages
を使用して、Substrate ユーザー メールボックスからすべてのユーザー メッセージを取得します。 Export API は、ユーザーの送受信されたメッセージの両方を取得します。これにより、チャット スレッド内のすべてのユーザーに対して API を呼び出すときに重複するメッセージがエクスポートされます。
Export API には、チャット スレッドに対して返されるメッセージを最適化するのに役立つフィルター パラメーターがあります。 API GET では、送信されたユーザー、ボット、アプリケーション、およびシステム のイベント メッセージに基づいてメッセージを抽出できる新しいフィルター パラメーターがサポートされています。 filter パラメーターは、次の方法で送信されるメッセージをサポートします。
ユーザー (同じ要求でサポートされている複数のユーザー 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 messsageType 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/applicationIdenitytyType eq '{appType}'
が存在する場合、クエリは指定したアプリケーションの種類によって送信されたメッセージを返します。messageType eq 'systemEventMessage'
が存在する場合、クエリはシステムによって送信されたメッセージを返します。
これらのパラメーターは、OR 演算子を使用するか、 lastModifiedDateTime
$filter
パラメーターと組み合わせて組み合わせることができます。
保持されるメッセージの Teams エクスポート API
テナントが Teams アイテム保持ポリシーを使用して設定されている場合、Export API では、個々の & グループ チャットの保留フォルダーからのメッセージのキャプチャと、パブリック & 共有チャネルでの投稿、コメントのキャプチャがサポートされます。
保持メッセージ 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 365 Copilotの相互作用
aiInteractionHistory: copilot 操作のエクスポートを可能にする getAllEnterpriseInteractions の詳細を確認してください。