我正在开发一种工具,使用由管理员运行的 Admin SDK 自动将 Google Drive 文档的所有权从一个用户转移到另一个用户。我使用数据传输 API 进行所有权转移。我想通过检查转移前后 Google Drive 文档的大小/数量来验证转移,管理员帐户必须能够访问域中所有用户的 Google Drive 内容。有没有办法做到这一点?或者有没有更好的方法来验证数据传输?
我尝试通过将“ key ”设置为目标用户帐户来使用 Drive API 服务进行验证。到目前为止,我对 Drive API 的所有尝试都检索了管理员的 Drive 内容。
最佳答案
Files.list将检索所有用户的文件,在这种情况下,它将获得您自己的所有文件。只有当该用户也是您的文件之一的所有者时,该查询才能工作。
HTTP 请求
GET https://www.googleapis.com/drive/v2/files
即使作为管理员,您也无法直接访问用户文件。
要访问其他用户的文件,作为管理员,您需要模拟用户,然后代表他们执行操作。
这是通过使用 service account 来实现的。具有域范围的授权。
通常,当应用程序使用 Google API 处理自己的数据而不是用户的数据时,应用程序会使用服务帐户。例如,使用 Google Cloud Datastore 进行数据持久化的应用程序将使用服务帐户来验证其对 Google Cloud Datastore API 的调用。
Google Apps 域管理员还可以授予服务帐户域范围的权限以代表域中的用户访问用户数据。
这是一个相关的 SO 票证,讨论传输用户文件的最有效过程:Most efficient process for transferring ownership of all of a user's files using the Google Drive API
关于google-admin-sdk - 管理员如何访问特定域中所有用户的 Google Drive 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602929/