Google Analytics如何使用php从服务器到服务器OAuth获取访问令牌
我正在尝试为谷歌分析数据创建一个仪表板,但我不知道如何组合这些脚本 我必须像这样使用服务器到服务器的身份验证,但我无法获得Javascript身份验证的访问令牌Google Analytics如何使用php从服务器到服务器OAuth获取访问令牌,oauth,google-analytics,Oauth,Google Analytics,我正在尝试为谷歌分析数据创建一个仪表板,但我不知道如何组合这些脚本 我必须像这样使用服务器到服务器的身份验证,但我无法获得Javascript身份验证的访问令牌 gapi.analytics.auth.authorize({ serverAuth: { access_token: >>How to get an Access token from PHP<< } }); 我的getAccessToken始终为NULL是否有其他方法通过服务器到服务
gapi.analytics.auth.authorize({
serverAuth: {
access_token: >>How to get an Access token from PHP<<
}
});
我的getAccessToken始终为NULL是否有其他方法通过服务器到服务器连接接收访问令牌?我必须找到不需要通过Javascript登录的方法,因为来自内容管理系统的所有后端用户都应该能够看到数据
多谢各位。我是新来的,如果你能解释一下它是如何工作的,而不仅仅是发送一个链接,那就太好了
编辑:换句话说,这里是我的全部代码。。。为什么不起作用,怎么了?请帮帮我
<?php
// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';
$accessToken = initializeAnalytics();
function initializeAnalytics()
{
$KEY_FILE_LOCATION = __DIR__ . '/Service.json';
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$accessToken = $client->getAccessToken();
return $accessToken;
}
?>
<script>
(function(w,d,s,g,js,fjs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(window,document,'script'));
</script>
<div id="chart-1-container"></div>
<script>
gapi.analytics.ready(function() {
gapi.analytics.auth.authorize({
serverAuth: {
access_token: '<?php echo $accessToken ?>'
}
});
var dataChart = new gapi.analytics.googleCharts.DataChart({
query: {
ids: "ga:128053216",
metrics: 'ga:sessions',
dimensions: 'ga:date',
'start-date': '30daysAgo',
'end-date': 'yesterday',
},
chart: {
container: 'chart-1-container',
type: 'LINE',
}
});
dataChart.execute();
});
</script>
(功能(w、d、s、g、js、fjs){
g=w.gapi | |(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)};
js=d.createElement;fjs=d.getElementsByTagName[0];
js.src=https://apis.google.com/js/platform.js';
insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(窗口、文档、“脚本”);
gapi.analytics.ready(函数(){
gapi.analytics.auth.authorize({
serverAuth:{
访问\u令牌:“”
}
});
var dataChart=new gapi.analytics.googleCharts.dataChart({
查询:{
ID:“ga:128053216”,
指标:“ga:会话”,
维度:“ga:日期”,
‘开始日期’:‘30天Sago’,
“结束日期”:“昨天”,
},
图表:{
容器:“图表1-容器”,
键入:“行”,
}
});
dataChart.execute();
});
经过几天的尝试,终于找到了解决方案。。。。
它现在可以使用这个脚本
<?php
// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';
$accessToken = initializeAnalytics();
function initializeAnalytics()
{
$KEY_FILE_LOCATION = __DIR__ . '/Service.json';
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$client->refreshTokenWithAssertion();
$token = $client->getAccessToken();
$accessToken = $token['access_token'];
return $accessToken;
}
?>
<script>
(function(w,d,s,g,js,fjs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(window,document,'script'));
</script>
<div id="chart-1-container"></div>
<script>
gapi.analytics.ready(function() {
gapi.analytics.auth.authorize({
serverAuth: {
access_token: '<?php echo $accessToken ?>'
}
});
var dataChart = new gapi.analytics.googleCharts.DataChart({
query: {
ids: ">your analytics ID<",
metrics: 'ga:sessions',
dimensions: 'ga:date',
'start-date': '30daysAgo',
'end-date': 'yesterday',
},
chart: {
container: 'chart-1-container',
type: 'LINE',
}
});
dataChart.execute();
});
</script>
(功能(w、d、s、g、js、fjs){
g=w.gapi | |(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)};
js=d.createElement;fjs=d.getElementsByTagName[0];
js.src=https://apis.google.com/js/platform.js';
insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(窗口、文档、“脚本”);
gapi.analytics.ready(函数(){
gapi.analytics.auth.authorize({
serverAuth:{
访问\u令牌:“”
}
});
var dataChart=new gapi.analytics.googleCharts.dataChart({
查询:{
ids:“>我想在获取新的访问令牌之前,您需要发出一个请求。请尝试让php发出请求。您能举个例子吗?我有点迷路了。
<?php
// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';
$accessToken = initializeAnalytics();
function initializeAnalytics()
{
$KEY_FILE_LOCATION = __DIR__ . '/Service.json';
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$client->refreshTokenWithAssertion();
$token = $client->getAccessToken();
$accessToken = $token['access_token'];
return $accessToken;
}
?>
<script>
(function(w,d,s,g,js,fjs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(window,document,'script'));
</script>
<div id="chart-1-container"></div>
<script>
gapi.analytics.ready(function() {
gapi.analytics.auth.authorize({
serverAuth: {
access_token: '<?php echo $accessToken ?>'
}
});
var dataChart = new gapi.analytics.googleCharts.DataChart({
query: {
ids: ">your analytics ID<",
metrics: 'ga:sessions',
dimensions: 'ga:date',
'start-date': '30daysAgo',
'end-date': 'yesterday',
},
chart: {
container: 'chart-1-container',
type: 'LINE',
}
});
dataChart.execute();
});
</script>