2015-05-01 87 views
1

我有这段代码(查看问题的结尾),我所要做的就是放入我的访问令牌中,事情是我已经下载了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> 

回答

0

不要尝试在嵌入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。

+0

嘿,文档还在这里指定了一个服务器版本:https://developers.google.com/analytics/devguides/reporting/embed/v1/component-reference特别在“serverAuth.access_token”中,并进一步提供了代码来做到这一点,我只需要找出如何获得访问令牌,我从P12文件中获得了具有公钥和私钥的信息,但这些信息并没有缝合成为我过了很久的令牌。 谢谢。 – zoro724

+0

Embeded API是JavaScript它不会与一个服务帐户一起工作 – DaImTo

相关问题