首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-api-php-client“错误”:"unauthorized_client“

google-api-php-client“错误”:"unauthorized_client“
EN

Stack Overflow用户
提问于 2017-03-10 00:40:03
回答 1查看 3.3K关注 0票数 4

我们正在尝试构建一个服务,用于在我们的gsuite域中导出google驱动器文件。

我们正在和https://github.com/google/google-api-php-client合作

我们创建了一个服务用户,下载并保存了用户凭证,并向该服务用户授予了全域访问权限。

下面是最简单的例子(就像我在每个文档中找到的一样):

代码语言:javascript
复制
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');,它就会丢弃以下错误:

代码语言:javascript
复制
{
    "error": "unauthorized_client",
    "error_description": "Client is unauthorized to retrieve access tokens using this method."
}

有没有人有想法,或者可以分享这个问题的代码样本。这对我们来说是一个真正的拦截器,现在我不知道为什么会出现这个错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 19:14:01

我终于成功了

经过几次尝试后,我意识到我将全域访问权限委派给了错误的客户端ID。我一直认为这应该与我在脚本中使用的"client_email“相同。但这真的(真的,真的,真的)很重要,这就是"client_id“(顺便说一下,文档中提到的)。这不是电子邮件或字符串,它只是您为服务帐户创建密钥时获得的一个简单数字。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42700788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档