You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于C#的ServiceAccount应用:定时检测组织用户Drive的Meet录制文件

基于C#的ServiceAccount应用下载Google Meet录制文件方案

可行性说明

完全可行。借助具备域范围权限的ServiceAccount,你可以模拟域内任意用户访问其Google Drive,搭配定时任务框架(比如Quartz.NET)就能实现周期性检测并下载Meet录制文件。

问题解答

1. 认证环节优化

不需要每次运行都重新认证。你可以把生成的access token存入数据库,同时记录token的过期时间(ServiceAccount生成的token默认有效期为1小时)。每次执行检测任务前,先检查数据库中存储的token是否仍在有效期内:

  • 若未过期,直接取出使用;
  • 若已过期,再通过ServiceAccount重新生成token并更新数据库中的记录。
    在C#的Google.Apis.Auth库中,获取token时可以通过TokenResponse.ExpiresIn属性计算出准确的过期时间,方便后续判断。

2. 检测并下载组织内所有用户的Meet录制文件

按以下步骤实现核心逻辑:

  • 获取域内用户列表:使用Admin SDK的Directory API,模拟域内超级管理员账号调用Users.List接口,批量获取所有用户的邮箱或用户ID。
  • 模拟用户身份访问Drive:对每个用户,通过ServiceAccount的ImpersonateUser方法指定目标用户邮箱,创建对应的DriveService实例,以此身份访问该用户的Drive。
  • 筛选Meet录制文件:
    • 精准筛选:Google Meet录制文件默认存放在用户Drive的「Meet Recordings」文件夹中,可先定位该文件夹ID,再查询其中的文件;
    • 通用筛选:用Drive API的搜索查询语句,比如mimeType='video/mp4' and name contains 'Meet' and createdTime > '上次检测时间',既过滤出视频类型的Meet录制文件,又只获取上次检测后新增的文件。
  • 避免重复下载:维护一个数据库表,记录每个用户已下载的文件ID、下载时间等信息,每次检测时只处理不在该表中的文件。
  • 下载文件:调用Drive API的Files.Get方法,通过Download()获取文件流,将流写入本地文件或指定存储系统。

内容的提问来源于stack exchange,提问作者elad weinbreand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:19:58