如何列出未与组织共享的 Google Drive 文件

问题描述

我正在尝试检索由我组织内的用户创建的所有 Google Drive 文件(设置了域范围委派和 drive 角色)。

srv.Files.List().Corpora("domain").Fields("*").Q(modifiedTime).PageSize(1000).Pages(d.ctx,listFiles)

虽然,这种调用的结果只返回共享设置中“[公司]中的人可以搜索文件文件,已切换。

如果我冒充其他用户并将 Corpora("domain") 更改为 Corpora("user"),我可以列出所有文件,但如果我有数千个用户,这不是最佳选择。

如何列出组织下的所有文件包括未共享的文件

解决方法

域范围委派的工作方式是允许服务帐户模拟或充当单个用户。服务帐户不仅仅获得对每个人数据的写访问权限。

这是由于 APIS 的工作方式受到限制。对 api 的每个请求都必须包含一个授权标头,其中包含授予对单个用户数据的访问权限的访问令牌。如果您想访问 John 的数据,那么您需要一个 John 的访问令牌,这不会让您访问 John 和 Janes 的数据。

因此,要使服务帐户正常工作,您需要能够委托给 John,然后再发送另一个请求,委托给 Jane 以访问她的数据。

这可能不是您的应用程序的最佳选择,但它是如何工作的。您需要一次委派给每个用户一个。