Google Analytics Reporting Api - PHP:添加用户帐户

Posted

技术标签:

【中文标题】Google Analytics Reporting Api - PHP:添加用户帐户【英文标题】:Google Analytics Reporting Api - PHP: Add user account 【发布时间】:2017-07-15 09:38:03 【问题描述】:

我想做的事

让我的 Web 应用程序的用户与该应用程序共享他们的分析帐户。 将用户重定向到 Google 身份验证,要求他们批准访问 将用户重定向回应用程序。 根据用户的分析数据和来自应用的数据为用户生成报告。 下次用户生成他们的报告时,我不想再次要求他们进行日志记录。

问题出在哪里

我读到了这个Google developers php guide。但是,示例代码会连接到已与应用共享的第一个帐户。

我想查看一段代码,它要求用户提供他们的凭据,从而提供对他们帐户的访问权限。

在堆栈上我已经找到了这个答案Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?。但是,这里提到的 APP_EMAIL 不是特定用户的电子邮件,而是在控制台中创建的应用程序的 developer.gserviceaccount.com 标识。

我还发现了这个帖子Google Analytics Core Reporting API Version 3.0 without client login。似乎在那里解决了类似的主题,但是那里缺少代码的重要部分(从我的角度来看)。

【问题讨论】:

记住凭据不是用户登录名和密码。这是一个刷新令牌,可让您在未来访问他们的帐户。在这种情况下,服务帐户将不适合您。这将是一个坏主意。我有一个教程系列,可以帮助您入门。 daimto.com/google-development-beginners Dimi 发布的答案中的代码应该可以工作。 啊哈这是我的问题 - 我没有意识到使用令牌而不是凭据,谢谢 【参考方案1】:

首先,确保通过将访问类型设置为离线来获取刷新令牌。 然后为报告创建一个单独的页面。 单独的页面应该为所有报告使用帐户 ID 和刷新令牌,如果它给你一个令牌错误,你可以自己刷新它,或者将它们发送回登录页面。

您只需要求提供一次凭据,即可访问所有帐户。 php指南仅使用第一个帐户,但是您可以遍历所有帐户并获得更多

$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/creds/client_secrets.json');
$client->setIncludeGrantedScopes(true);
$client->setAccessType("offline");
$client->setApprovalPrompt('force');
$client->addScope(Google_Service_Analytics::ANALYTICS_EDIT);
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) 
        // Set the access token on the client.
        $client->setAccessToken($_SESSION['access_token']);
        // Create an authorized analytics service object.
        $analytics = new Google_Service_Analytics($client);
        $accounts=getAccountIds($analytics);
        foreach($accounts as $acc)
        
         var_dump($acc);


else 
        $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
        header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));

【讨论】:

以上是关于Google Analytics Reporting Api - PHP:添加用户帐户的主要内容,如果未能解决你的问题,请参考以下文章

Google Analytics PHP示例

html Google Analytics(分析) - 更多信息:https://developers.google.com/analytics/devguides/collection/analyt

Firebase Analytics 开始而不是 Google Analytics

javascript Google Analytics跟踪使用Universal Analytics的活动

Google Analytics Premium VS Adobe Analytics

javascript 在Classic或Universal Analytics中跟踪Google Analytics事件