使用Google服务帐户代表用户创建Google云端硬盘文件夹

时间:2017-04-26 02:34:35

标签: php google-drive-api google-oauth

我创建了一个服务帐户,并希望代表其他用户创建文件夹。我使用的是Google Drive API v3(PHP)。

我可以在我的服务帐户下创建一个文件夹,并尝试将所有权转让给其他用户。但它不能工作,并显示未经授权的访问。

https://developers.google.com/api-client-library/php/auth/service-accounts中,它提到“您的应用程序现在有权将API调用作为您域中的用户(”模仿“用户)。当您准备进行授权的API调用时,您将用户指定为模仿。”。我不知道该怎么做。

此外,我注意到一个函数“$ client-> setSubject($ email)”,但我也无法使它工作。

请提供建议和帮助。

1 个答案:

答案 0 :(得分:0)

首先,在您执行任何其他操作之前,请确保您了解服务帐户只能模仿其自己的Gsuite域中的用户。他们无法冒充xxx@gmail.com用户

假设您确实想冒充Gsuite用户, 见https://developers.google.com/api-client-library/php/auth/service-accounts,其中说

  

如果您已授予对服务帐户的域范围访问权限   您要模拟用户帐户,请指定电子邮件地址   使用方法setSubject的用户帐户:

     

$客户端 - > SETSUBJECT($ user_to_impersonate);