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:添加用户帐户的主要内容,如果未能解决你的问题,请参考以下文章
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事件