正在下载 google 驱动器文件而不与服务帐户共享

Downloading a google drive file without sharing it with service account

我已经创建了一个服务帐户来访问用户 google sheet 以 excel 格式下载它。

假设我的域 ID 是 - abc@mydomain.com 并且 服务帐户 ID - serviceaccount@composed-setup-1234.iam.gserviceaccount.com

当我尝试从服务帐户下载带有 google sheet ID 的 google sheet 时,出现此错误。

Google.Apis.Requests.RequestError
File not found: 1-mhsKJ1THbROA7yXRye3JI6cWANAdiMxoD5fKQ-jvSI. [404]
Errors [
        Message[File not found: 1-mhsKJ1THbROA7yXRye3JI6cWANAdiMxoD5fKQ-jvSI.] Location[fileId - parameter] Reason[notFound] Domain[global]
]

但是当我从域 ID 与服务帐户 ID 共享 google sheet 时,我能够下载 google sheet.

服务帐户可以在不共享 sheet 的情况下访问域用户的驱动器来下载它。

服务帐户不是您,将其视为虚拟用户帐户。

您在 google 驱动器上的文件是您拥有的私人用户数据。如果您希望我能够下载您的文件,您需要与我共享,服务帐户也是如此。

使用 Oauth2 会弹出 window 要求用户授予应用程序访问数据的权限,服务帐户通过手动与他们共享内容进行预授权。

服务帐户无法下载它无权访问的文件。您需要与其共享文件才能访问它。