带有服务帐户的PHP Google Drive API

时间:2017-11-07 08:39:59

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

我想阅读公司私有域中的Google云端硬盘文件夹,以便我可以访问和处理Google表单的结果。

这是一个有用的PHP代码:

putenv('GOOGLE_APPLICATION_CREDENTIALS='path/to/drive-api.json');

$client = new \Google_Client();
$client->useApplicationDefaultCredentials();        
$client->addScope('https://www.googleapis.com/auth/drive');     

$client->setAccessType('offline');   
//$client->setSubject('admin@mydomain.com');
$httpClient = $client->authorize();

但是使用此代码我只能访问服务帐户的驱动器空间。

我想取消注释“setSubject()”行,以便模拟真实用户并访问真实文件夹。但这样做会给我这个错误:

{
    "error": "unauthorized_client",
    "error_description": "Client is unauthorized to retrieve access tokens using this method."
}

我的服务帐户具有域范围的委派,我已将范围访问权限添加到Gsuite域的管理控制台。我做了所有写的here

那么如何使用服务帐户模拟用户?请注意,出于安全原因,用户无法共享“mydomain.com”以外的内容,并且服务帐户位于“.iam.gserviceaccount.com”

0 个答案:

没有答案