我有一个全局帐户,我想在服务器端使用多个视图,为客户端的各种视图嵌入仪表板。根据我的理解,我在服务器端使用服务帐户获取访问令牌,然后可以在需要时将访问令牌发送到客户端。我在想,这是正确的流程吗?访问令牌应该是每个会话吗?
显示在客户端的授权here有一个服务器身份验证访问令牌的字段,但找不到我想要的确切流量的文档。基本上我不确定生成该服务器身份验证访问令牌的正确方法是什么。任何帮助/指针将非常感激。
答案 0 :(得分:3)
defined是如何设置服务器端身份验证的示例。当有人访问该网站时,上述代码会创建一个新令牌。您可以看到获取该访问令牌的端点Here。
以下是了解工作版本的一般步骤:
第1步:创建服务帐户并下载JSON密钥
第2步:在Google Analytics中以用户身份添加服务帐户
第3步:使用JSON密钥数据来请求访问令牌
<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>
回到客户端:
第4步:加载Embed API库。
<div id="chart-1-container"></div>
<div id="chart-2-container"></div>
步骤5 :添加HTML容器以托管仪表板组件。
/**
* Authorize the user with an access token obtained server side.
*/
gapi.analytics.auth.authorize({
'serverAuth': {
'access_token': '{{ ACCESS_TOKEN_FROM_SERVICE_ACCOUNT }}'
}
});
...
第6步:编写信息中心代码。
使用步骤3中获取的访问令牌授权Embed API。
gapi.analytics.ready(function(){
actionButton
创建返回令牌的端点的额外工作取决于您的后端实现,但可以找到演示的源代码here。
答案 1 :(得分:1)
我对Google Analytics并不十分熟悉,但就OAuth而言,访问令牌和刷新令牌的处理都应该在服务器端。客户端接收授权代码并将其提供给服务器,然后服务器获取令牌并使用令牌获取必要的数据。不需要向客户端发送访问令牌。
阅读本文可能会有所帮助,它描述了标准的OAuth流程: has been some discussion