使用 Microsoft Teams 导出 API 导出内容

Teams 导出 API 允许从 Microsoft teams 导出 1:1、群组聊天、会议聊天和频道消息。 如果你的组织需要导出Microsoft Teams 消息,你可以使用 Teams 导出 API 提取它们。 聊天消息 表示 频道 或聊天中的单个 聊天消息。 聊天消息可以是根聊天消息,也可以是聊天消息中的 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 客户端中删除的消息可以使用导出 API 访问,最长为删除时间的 21 天。

  • 邮件附件: 导出 API 包含邮件中发送的文件的附件信息。 附件可能显示为元数据,在某些情况下显示为链接 (例如,邮件正文中的 ASM URL) 。 邮件的 attachments 集合应用于检索附加文件,因为嵌入在正文中的 URL 可能无法直接访问。

  • 反应: 导出 API 支持用户对 Teams 消息发起的反应。 目前支持的反应是心,愤怒,喜欢,悲伤,惊讶和笑。 除了反应,导出 API 还支持“反应编辑历史记录”,其中包括对消息的反应所做的更改和更新。

    注意

    导出 API 当前不支持通过颜色更改自定义的反应。

  • 共享通道消息: 支持从共享频道捕获消息的导出 API。

  • 已删除的 Teams: 导出 API 支持 从已删除的 Teams 和已删除的标准、专用和共享频道捕获消息,自删除之日起最多 30 天。 30 天后,团队和频道将硬删除,并且无法检索消息。

  • 已删除的用户:导出 API 支持从删除用户起最多 30 天内捕获已删除用户的消息。 若要查找已删除用户的列表,请参阅 已删除邮件

  • 非活动用户:导出 API 支持从用户变为非活动用户开始 30 天内捕获非活动用户的消息。 若要查找非活动邮箱的列表,请参阅 非活动邮箱

  • 聊天消息属性: 请参阅 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 筛选器,类似于聊天消息:

    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})
    
  • 示例 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 Microsoft Graph 中访问敏感数据的 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 导出 API 不需要Microsoft Purview 数据丢失防护 (DLP) 服务计划或任何其他 DLP 许可。

导出 API 独立于 Microsoft Purview DLP 功能运行,并且适用于具有相应 Teams 许可的租户,该许可支持通过 Microsoft Graph 导出 API 进行数据访问。

合作伙伴名称 合作伙伴解决方案
logo-of-smarsh Microsoft Teams 存档和合规性
Proofpoint 徽标的屏幕截图。 适用于 Microsoft Teams 的 Proofpoint 内容记录

以下合作伙伴已经过认证。 你的公司可以选择与企业中的这些合作伙伴的任意组合合作。

合作伙伴名称 合作伙伴解决方案
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> value 指示录制内容的 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 可用于获取在 GET getAllRecordings API 的响应中获取的所选 userIdmeetingIdrecordingId 的实际录制内容。 它返回录制的内容:

      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> value 指示脚本内容的 URL。

    • 默认情况下,脚本内容采用 VTT 格式。 但是,使用 Accept 标头值 application/vnd.openxmlformats-officedocument.wordprocessingml.document,也可以获取 DOCX 格式。

    • JSON/VTT 格式的脚本内容本身的平均大小约为 300 KB,具体取决于我们在 30 分钟到 60 分钟范围内的会议的平均大小。

    • 结果不一定按 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 get GetAllTranscripts API 的响应中获取的所选 userId、meetingId 和 transcriptId 的实际脚本内容。 它返回录制的内容。

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

    有关详细信息,请参阅 使用 Graph API 提取脚本

导出 API 筛选器

在 Teams Graph 服务上托管的导出 API 使用 users/{userId}/chats/getAllMessages从 Substrate 用户邮箱获取所有用户消息。 导出 API 检索用户的已发送和接收消息,这会导致在为聊天线程中的所有用户调用 API 时导出重复消息。

导出 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 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 365 Copilot 副驾驶® 副驾驶®交互

详细了解 aiInteractionHistory: getAllEnterpriseInteractions ,它支持 导出 copilot 交互