【发布时间】:2017-07-30 18:13:47
【问题描述】:
我们正在尝试构建一个服务来导出我们的 gsuite 域中的谷歌驱动器文件。
我们正在与https://github.com/google/google-api-php-client 合作
我们创建了一个服务用户,下载并保存了用户凭据,并向服务用户授予了域范围的访问权限。
下面是最简单的例子(就像我发现的每个文档一样):
putenv('GOOGLE_APPLICATION_CREDENTIALS='/service-account-credentials.json');
$client = new \Google_Client();
$client->setAuthConfig('service-account-credentials.json');
$client->setScopes('https://www.googleapis.com/auth/drive.file');
$client->useApplicationDefaultCredentials();
$client->setSubject('admin@mydomain.com');
$service = new \Google_Service_Drive($client);
$service->files->listFiles();
只要我们包含$client->setSubject('admin@mydomain.com'); 行,它就会删除以下错误:
{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."
}
有任何想法,或者可以共享此问题的代码示例。这对我们来说是一个真正的障碍,现在我不知道为什么会出现这个错误
【问题讨论】:
-
这里可能只是一个拼写错误,但是你的第一行和第三行都缺少一个引号,所以你的字符串都搞砸了。
-
谢谢,但这只是 stackoverflow 上的拼写错误
-
您可以参考这个thread。您的错误意味着您的身份验证有问题。仔细检查您是否正确grant the service account access。您创建的服务帐号需要被授予访问您要访问的用户数据的权限。
-
我尝试授予访问权限、创建服务帐户、创建 oAuthClients 等。我检查了几次文档,但似乎没有任何效果
标签: php google-drive-api google-api-php-client