利用 Javascript 实现 Google Analytics API - 生成服务对象
2015-10-15
139
在阅读了 developers.google.com 上的许多文章后,我仍然不知道在我的网络应用中使用 Google Analytics API 的最佳方法是什么。
到目前为止,我已经按照 这些说明 使用正确的范围获取访问令牌,但我对下一步该做什么有点困惑。我的代码如下所示:
// in my angular controller
$scope.accessToken = {};
if (callback) {
authService.queryToken().then(function(data) {
$scope.accessToken = data;
console.log($scope.accessToken);
}, function(err) {
$scope.accessToken = null;
});
}
// in my angular service
service.queryToken = function() {
var params = {},
queryString = location.hash.substring(1),
regex = /([^&=]+)=([^&]*)/g,
m;
while (m = regex.exec(queryString)) {
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
var deferred = $q.defer();
$http({
method: 'POST',
url: 'http://' + window.location.host + '/catchtoken?' + queryString
}).success(function(data) {
deferred.resolve(data);
}).error(function() {
deferred.reject('There was an error');
});
return deferred.promise;
};
此资源 看起来不错,但我不知道如何使用我生成的访问令牌。我主要感到困惑的是,生成访问令牌的方法似乎只提到通过 HTTP 调用 Google API,而其他资源则提到创建服务对象。
如何使用用户生成的访问令牌创建分析服务对象?
1个回答
根据我们在评论中的讨论,听起来您真正想要的是一种让用户使用他们的 Google 帐户登录并授予您查询其 Google Analytics 数据的权限的方法。
如果您使用
Google 登录网页
流程以及
gapi.client.request
方法(
JavaScript 版 Google API 客户端库
),您应该能够轻松地对用户进行身份验证,然后自由地发出请求,而不必担心访问令牌是否已过期(登录库会在后台自动刷新它)。场景)。
以下是可帮助您入门的示例 HTML 文件:
<html>
<head>
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
<meta name="google-signin-client_id" content="XXXX.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
<script>
function onSignIn(googleUser) {
gapi.load('client', function() {
gapi.client.request({
path: '/analytics/v3/data/ga',
params: {
'ids': 'ga:XXXXX',
'start-date': '7daysAgo',
'end-date': 'yesterday',
'metrics': 'ga:sessions'
}
})
.then(function(response) {
var totalSessions = response.result.totalsForAllResults['ga:sessions'];
console.log('Total sessions in the past week: ' + totalSessions);
});
});
}
</script>
</body>
</html>
请注意,使用上述代码时,您必须在顶部附近的
<meta>
标记中使用自己的
客户端 ID
,并且必须将字符串
'ga:XXXXX'
替换为您要查询的 Google Analytics(分析)视图 ID。您可以使用
Google Analytics(分析)帐号浏览器
查找您的视图 ID。
Philip Walton
2015-10-16