我想阅读公司私有域中的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”