当前位置: 首页 > 知识库问答 >
问题:

使用API的谷歌驱动器文件和服务帐户的所有权

支彭亮
2023-03-14

在开发人员控制台中为特定应用程序用户(例如user@mydomain.com)创建的服务帐户是否可以访问该应用程序用户的文档?如果在assertionCredentials()中设置帐户,如下所示:

$credentials = new Google_Auth_AssertionCredentials(...);
$credentials->sub = "user@mydomain.com";

我收到以下错误:

PHP Fatal error:
Uncaught exception 'Google_Auth_Exception' with message
'Error refreshing the OAuth2 token, message:'{
  "error" : "unauthorized_client",
  "error_description" : "Unauthorized client or scope in request."
}

当我没有设置$credentials->sub=“user@mydomain.com”时,我可以访问驱动器,但我只能看到一个文档“如何开始使用驱动器”。

如果我在服务帐户上创建文档,是否有任何方法可以将文档的所有权转移到我的应用程序帐户,而不启用域范围的委托?

共有1个答案

万修为
2023-03-14

当涉及到Drive REST API时,服务帐户本质上是他们自己的帐户,但是这种行为似乎与Google Calendar API不一致,在Google Calendar API中,服务帐户可以模拟所有者帐户,而无需域范围的委托。如果您使用Developers控制台中提供的服务帐户电子邮件地址共享任何文档,则服务帐户可以访问该文档,但是所有权转移是不可能的,因为这两个帐户不存在于同一个域中。

 类似资料:
  • 我为我的帐户name@steelkiwi.com(谷歌应用程序)创建了服务帐户,我的应用程序运行良好。然后我为我的个人帐户name@gmail.com创建了服务帐户,为我的应用程序使用这个新的凭据,现在当我试图插入文件时,我得到错误500和下一个文本: HttpError 500请求https://www.googleapis.com/upload/drive/v2/files时?quotause

  • 我正在工作上传文件在谷歌驱动器与服务帐户,我能够插入文件在谷歌驱动器,但我不能查看该文件在谷歌驱动器。 我是创建abc@gmail.com。用abc@gmail.com创建一个服务帐户。有了P12证书和服务客户端电子邮件id,我可以在驱动器中插入文件。但无法在abc@gmail.com的谷歌驱动器上看到该文件。当fatch从应用程序中的文件列表时,它将显示5个文件,但在我的abc@gmail.co

  • 我们正在使用服务帐户从服务器上传文件,它已经达到其存储配额限制。所有文件都被添加到另一个用户创建的文件夹下(一个@gmail.com帐户,存储配额为100 Gb),但上传的所有文件都归服务帐户所有。 请注意,我们没有真正的用户,我们只是使用谷歌驱动器存储目的。 目前,我们无法上传任何更多的文件使用服务帐户。 null 谢谢

  • 我正在使用google drive api来管理多个用户的一些文件。现在我想知道如何将一些文件的所有权转移给另一个用户。