使用 Microsoft Teams 匯出 API 匯出內容

Teams 匯出 API 可讓您從 Microsoft Teams 匯出一對一、群組聊天、會議聊天和頻道訊息。 如果您的組織需要匯出 Microsoft Teams 訊息,您可以使用 Teams 匯出 API 來解壓縮它們。 Chat 訊息代表頻道或聊天中的個別聊天訊息。 聊天訊息可以是根聊天訊息,也可以是聊天訊息中 replyToId 屬性所定義的回覆對話的一部分。

以下是有關如何使用這些匯出 API 的一些範例:

  • 範例 1:如果您在組織中啟用了 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 身分識別平台取得存取權杖。 存取權杖包含您的應用程式的相關資訊,以及應用程式對於透過 Microsoft Graph 提供的資源和 API 所擁有的權限。 若要取得存取權杖,您的應用程式必須向 Microsoft 身分識別平台註冊。 使用者或系統管理員必須授權它才能存取所需的 Microsoft Graph 資源。 如果您已經熟悉將應用程式與 Microsoft 身分識別平台整合以取得權杖,請參閱後續步驟一節,以取得 Microsoft Graph 的特定資訊和範例。

  • 混合環境: 匯出 API 支援由在混合式環境 (內部部署 Exchange 和 Teams) 上佈建的使用者所傳送的訊息。 凡是由設定為混合式環境的使用者所傳送的訊息,都可以使用匯出 API 來存取。

  • 使用者刪除的訊息: 使用者從 Teams 用戶端刪除的訊息,在刪除後最多 21 天內可以使用匯出 API 存取。

  • 郵件附件: 匯出 API 包含以郵件傳送檔案的附件資訊。 附件可能會顯示為中繼資料,在某些情況下,會顯示為 (例如郵件內文中) 的 ASM URL 的連結。 郵件的 attachments 集合應該用來檢索附加檔案,因為內嵌在本文中的 URL 可能無法直接存取。

  • 反應: 匯出 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/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 篩選條件,類似於 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.nextlinkURL 呼叫 GET。 如果 @odata.nextlink 不存在或 null,則擷取所有訊息。

    備註

    回應中的訊息順序不保證會依任何日期時間排序,例如 createdDateTime 或 lastModifiedDateTime。

存取 Teams 匯出 API 的必要條件

  • Microsoft Graph 中存取敏感性資料的 Microsoft Teams API 會被視為受保護的 API。 只要符合 無使用者存取 的需求,您就可以呼叫這些 API。

  • 應用程式權限可由在沒有登入使用者的情況下執行的應用程式使用。 只有系統管理員可以核准應用程式權限。 需要下列權限:

    • Chat。Read.All: 可讓您存取所有一對一、群組聊天和會議聊天訊息。

    • 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 匯出 API 不需要Microsoft Purview 資料外洩防護 (DLP) 服務方案或任何其他 DLP 授權。

匯出 API 獨立於 Microsoft Purview DLP 功能運作,可供具有支援透過 Microsoft Graph 匯出 API 存取資料的適當 Teams 授權的租用戶使用。

合作夥伴名稱 合作夥伴解決方案
標誌-of-smarsh Microsoft Teams 封存與合規性
Proofpoint 標誌的螢幕擷取畫面。 適用於 Microsoft Teams 的 Proofpoint Content Capture

下列合作夥伴已通過認證。 您的公司可以選擇在企業內與這些合作夥伴的任何組合合作。

合作夥伴名稱 合作夥伴解決方案
logo-of-rubrik Microsoft Teams 備份和復原
logo-of-veeam Microsoft Teams 備份和復原

後續步驟

如果您是尋求加入認證計劃的供應商,請填寫 此表格 作為下一步。 如果您需要提供更多內容和詳細資料,請寄郵件至 MS Teams 生態系統小組 (TeamsCategoryPartner@microsoft.com) 。

評估模式 (預設)

沒有模型宣告可讓您針對每個要求應用程式存取使用量有限的 API,以用於評估目的。

JSON 表示法

  1. 下列範例是聊天資源的 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 資源類型 文章。

  2. 下列範例是錄製內容資源的 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 格式。

    • 錄製內容本身的平均大小約為 350 MB,這是根據我們在 30 分鐘到 60 分鐘範圍內的會議平均值而定。

    • 結果不保證會依據 排序。createdDateTime 不過,當單一會議存在多個錄製內容時,它們會共用相同的 meetingId 值。 此外,多個錄製內容的條目會針對相關會議正確排序。

    • 只有在相關聯的會議錄製可供使用之後,才保證顯示結果。 換句話說,呼叫者不需要其他輪詢可用性。

    • 根據 Teams 匯出 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 匯出 API 中的目前模式,也支援參數。

    • DeltaToken 支援啟用變更追蹤和同步案例。 如需現有差異查詢的概觀和範例,請參閱 使用差異查詢來追蹤 Microsoft Graph 資料的變更。

    • 以下API可用於取得所選 userId的實際 meetingId錄製內容,並在 recordingId GET getAllRecordings API的回應中取得。 它會傳回錄製內容:

      GET users('{userId}')/onlineMeetings('{meetingId}')/recordings('{recordingId}')/content 
      
  3. 下列範例是轉譯資源的 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 格式。 但是,使用 Accept 標頭值 application/vnd.openxmlformats-officedocument.wordprocessingml.document,也可以獲得 DOCX 格式。

    • 根據我們在 30 分鐘到 60 分鐘範圍內的會議平均值,JSON/VTT 格式的文字記錄內容本身的平均大小約為 300 KB。

    • 結果不保證會依據 排序。createdDateTime 不過,當單一會議存在多個錄製內容時,它們會共用相同的 meetingId 值。 此外,多個錄製內容的條目會針對相關會議正確排序。

    • 只有在相關聯的會議錄製可供使用之後,才保證顯示結果。 換句話說,呼叫者不需要其他輪詢可用性。

    • 根據 Teams 匯出 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 匯出 API 中的目前模式,也支援參數。

    • DeltaToken 支援啟用變更追蹤和同步案例。 如需現有差異查詢的概觀和範例,請參閱 使用差異查詢來追蹤 Microsoft Graph 資料的變更。

    • 下列 API 可用來取得在 GET getAllTranscripts API 的回應中取得之所選 userId、meetingId 和 transcriptId 的實際文字記錄內容。 它會傳回錄製的內容。

      GET users('{userId}')/onlineMeetings('{meetingId}')/transcripts('{transcriptId}')/content
      

    如需詳細資訊,請參閱 使用 Graph API 擷取文字記錄。

匯出 API 篩選器

在 Teams Graph 服務上託管的匯出 API 會使用 users/{userId}/chats/getAllMessages從基底使用者信箱取得所有使用者訊息。 匯出 API 會擷取使用者已傳送和收到的訊息,這會導致在為聊天對話中的所有使用者呼叫 API 時匯出重複的訊息。

匯出 API 具有篩選參數,可協助最佳化針對聊天對話傳回的訊息。 API GET 支援新的篩選參數,可讓您根據已傳送的使用者、Bot 以及應用程式和系統事件訊息擷取訊息。 filter 參數支援下列者傳送的郵件:

  • 使用者 (在同一要求) 中支援多個使用者識別碼。

  • 應用程式 (Bot、連接器等) 。

  • 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 支援從 個人 & 群組聊天的保留資料夾擷取郵件,以及 公用 & 共用頻道中的貼文、留言。

如何存取保留訊息 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 互動

深入了解 aiInteractionHistory: getAllEnterpriseInteractions 可 匯出 Copilot 互動。