Google服务帐户打开p12“访问令牌”
问题描述:
我有这段代码(查看问题的结尾),我所要做的就是放入我的访问令牌中,事情是我已经下载了p12文件并且每当我尝试打开它,我只是得到一些微软证书程序,并没有告诉我需要的东西,我该如何进入这个p12文件来获取它所要求的访问令牌?Google服务帐户打开p12“访问令牌”
谢谢。
<!doctype html>
<html lang="en">
<head>
<title>Google Charts</title>
<script>
(function(w,d,s,g,js,fs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}};
js=d.createElement(s);fs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fs.parentNode.insertBefore(js,fs);js.onload=function(){g.load('analytics');};
}(window,document,'script'));
</script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
gapi.analytics.ready(function() {
var ACCESS_TOKEN = '???'; // obtained from your service account
gapi.analytics.auth.authorize({
serverAuth: {
access_token: ACCESS_TOKEN
}
});
var data = new gapi.analytics.report.Data({
query: {
ids: 'ga:????????',
metrics: 'ga:users,ga:sessions,ga:bounceRate',
'start-date': '30daysAgo',
'end-date': 'yesterday',
'output': 'dataTable',
}
});
data.execute();
data.on('success', function(response) {
var data = new google.visualization.DataTable(response.dataTable);
var formatter = new google.visualization.NumberFormat({fractionDigits: 2});
formatter.format(data, 1);
var table = new google.visualization.Table(document.getElementById('test'));
table.draw(data);
});
});
google.load('visualization', '1', {'packages':['table']});
google.setOnLoadCallback(table);
</script>
</head>
<body>
<div>
<div id="embed-api-auth-container"></div>
<div id="test"></div>
</div>
</body>
</html>
答
不要尝试在嵌入API中使用服务帐户。如图所示,文档Embeded API Getting started
gapi.analytics.ready(function() {
// Step 3: Authorize the user.
var CLIENT_ID = 'Insert your client ID here';
gapi.analytics.auth.authorize({
container: 'auth-button',
clientid: CLIENT_ID,
});
// Step 4: Create the view selector.
var viewSelector = new gapi.analytics.ViewSelector({
container: 'view-selector'
});
中如果你必须使用一个服务帐户,我建议你把嵌入式API,并直接与reporting API使用脚本语言如PHP使用正常的OAuth 2。
嘿,文档还在这里指定了一个服务器版本:https://developers.google.com/analytics/devguides/reporting/embed/v1/component-reference特别在“serverAuth.access_token”中,并进一步提供了代码来做到这一点,我只需要找出如何获得访问令牌,我从P12文件中获得了具有公钥和私钥的信息,但这些信息并没有缝合成为我过了很久的令牌。 谢谢。 – zoro724
Embeded API是JavaScript它不会与一个服务帐户一起工作 – DaImTo