使用GoogleOAuth2.0实现服务器到服务器应用程序PHP
我一直在完美地遵循这本指南,试图从谷歌获得任何一点信息,但我一直得到使用GoogleOAuth2.0实现服务器到服务器应用程序PHP,php,google-analytics,oauth-2.0,google-oauth,Php,Google Analytics,Oauth 2.0,Google Oauth,我一直在完美地遵循这本指南,试图从谷歌获得任何一点信息,但我一直得到403权限不足的问题 我创建了一个服务帐户,它给了我一个带有私钥、项目ID、客户端电子邮件和客户端ID的小json文件,以及许多其他我无法在stack overflow上共享的漂亮东西 然后,我将服务帐户的全域权限委托给特定的IIFC API作用域https://www.googleapis.com/auth/analytics.readonly我是通过Google Apps域的管理控制台完成的 然后,我准备用这一点点php进行
403权限不足的问题
我创建了一个服务帐户,它给了我一个带有私钥、项目ID、客户端电子邮件和客户端ID的小json文件,以及许多其他我无法在stack overflow上共享的漂亮东西
然后,我将服务帐户的全域权限委托给特定的IIFC API作用域<代码>https://www.googleapis.com/auth/analytics.readonly
我是通过Google Apps域的管理控制台完成的
然后,我准备用这一点点php进行授权api调用
<?php
require_once __DIR__ . '/vendor/autoload.php';
date_default_timezone_set('America/Los_Angeles');
$user_to_impersonate = 'my_real_email@companyname.com';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/Users/alexfallenstedt/Desktop/Code/sticky-dash/service-account.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$client->setSubject($user_to_impersonate);
$sqladmin = new Google_Service_SQLAdmin($client);
$response = $sqladmin->instances->listInstances('examinable-example-123')->getItems();
echo json_encode($response) . '\n';
?>
我迷路了。我的整个团队都输了。我们已经经历过多次了。我们如何设置服务器到服务器的通信来获取我们的google analytics reporting api数据?我最终忘记了测试版,而是提到了两条腿的OAuth的v3 我没有看到任何身份验证令牌。您是否获得了访问和刷新令牌?它们在用户同意后发送给您。@Arbels应用程序代表服务帐户调用Google API,因此用户不直接参与。这个两条腿的o-auth示例失败的步骤是当我的应用程序准备进行授权API调用时。我正在使用服务帐户的凭据从OAuth 2.0身份验证服务器请求访问令牌,但我不断收到权限错误。凭证存储在环境变量
putenv('GOOGLE_应用程序_凭证…')中代码>,在$client->useApplicationDefaultCredentials()中使用代码>。哦,我指的是最常见的。你确定你有资格使用这种方法吗?
Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}