使用API​​拥有Google云端硬盘文件和服务帐户的所有权

时间:2015-07-23 18:01:27

标签: php google-drive-api

在开发人员控制台中为特定应用用户创建的服务帐户(例如 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"时,我可以访问该驱动器,但我只看到一个文档" 如何开始使用云端硬盘&#34 ;

如果我在服务帐户上创建文档,是否有办法将文档的所有权转移到我的应用帐户而不启用域范围授权?

2 个答案:

答案 0 :(得分:0)

服务帐户在Drive REST API方面基本上是他们自己的帐户,但是这种行为似乎与Google Calendar API不一致,其中服务帐户可以模拟所有者帐户而无需域范围的委派。如果您使用开发人员控制台中提供的服务帐户电子邮件地址共享任何文档,该文档可供服务帐户访问,则无法进行所有权转移,因为这两个帐户在同一域中不存在。

答案 1 :(得分:-1)

在开发人员控制台中为特定应用用户(例如user@mydomain.com)创建的服务帐户是否可以访问应用用户的文档?

没有

我可以访问该驱动器,但我只看到一个文档"如何开始使用Drive"。

你期待什么?您已创建了一个新帐户,因此它只有一个欢迎文件。

如果我在服务帐户上创建文档,是否有办法将文档的所有权转移到我的应用帐户而不启用域范围授权?

您确定您已了解服务帐户是什么吗?如果您需要帐户中的文件,请使用您帐户的令牌并停止使用中间服务帐户。