{ "error" : "invalid_grant" } Google 目录 API PHP 客户端 SDK 出错
{ "error" : "invalid_grant" } error with Google Directory API PHP Client SDK
所以我已经尝试了一整天,但我似乎无法正确验证 google API。到目前为止,这是我建立连接所做的:
- 我首先为我的应用程序创建了一个服务帐户
- 然后我在 Google Apps 域的管理页面的第三方客户端访问设置中添加了该服务帐户。我添加了用户和组的范围
- 我为 Web 应用程序生成了一个新的客户端 ID
- 我下载了 .p12 文件,即我的网络客户端 ID 的秘密 JSON 文件,并将它们存储在本地
所以我认为这就是成功验证所需的全部内容。然后我使用以下代码设置所有内容:
$this->client = new Google_Client();
$this->client->setAuthConfigFile(STORAGE_PATH.'client_secrets.json');
$this->client->addScope(static::$scopes);
$cred = new Google_Auth_AssertionCredentials(
static::$service_account_email,
static::$scopes,
file_get_contents(STORAGE_PATH.'TRICS-key.p12'));
$cred->sub = static::$delegated_admin;
$this->client->setAssertionCredentials($cred);
$this->directory_service = new Google_Service_Directory($this->client);
有人知道我是否忘记了什么吗?
糟糕。我犯傻了。我不小心使用了 Web 客户端的电子邮件而不是服务帐户电子邮件。 :') 其余代码似乎可以正常运行。
所以我已经尝试了一整天,但我似乎无法正确验证 google API。到目前为止,这是我建立连接所做的:
- 我首先为我的应用程序创建了一个服务帐户
- 然后我在 Google Apps 域的管理页面的第三方客户端访问设置中添加了该服务帐户。我添加了用户和组的范围
- 我为 Web 应用程序生成了一个新的客户端 ID
- 我下载了 .p12 文件,即我的网络客户端 ID 的秘密 JSON 文件,并将它们存储在本地
所以我认为这就是成功验证所需的全部内容。然后我使用以下代码设置所有内容:
$this->client = new Google_Client();
$this->client->setAuthConfigFile(STORAGE_PATH.'client_secrets.json');
$this->client->addScope(static::$scopes);
$cred = new Google_Auth_AssertionCredentials(
static::$service_account_email,
static::$scopes,
file_get_contents(STORAGE_PATH.'TRICS-key.p12'));
$cred->sub = static::$delegated_admin;
$this->client->setAssertionCredentials($cred);
$this->directory_service = new Google_Service_Directory($this->client);
有人知道我是否忘记了什么吗?
糟糕。我犯傻了。我不小心使用了 Web 客户端的电子邮件而不是服务帐户电子邮件。 :') 其余代码似乎可以正常运行。