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

时间:2020-09-17 06:56:18

标签: oauth-2.0 google-drive-api service-accounts

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

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

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

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表格时,我可以下载Google表格。

服务帐户可以访问域用户的驱动器,而无需共享要下载的表。

1 个答案:

答案 0 :(得分:2)

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

您在Google云端硬盘上的文件是您拥有的私人用户数据。如果您希望我能够下载文件,则需要与我共享文件,服务帐户也是如此。

在使用Oauth2时,会弹出一个窗口,要求用户向应用程序授予对数据的访问权限,并通过与服务帐户手动共享内容来预先授权服务帐户。

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