2016-09-29 17 views
1

Googleアナリティクスデータ用のダッシュボードを作成しようとしていますが、スクリプトをどのように組み合わせるかわかりません。Google Analyticsサーバーからサーバーへのアクセストークンを取得する方法OAuth with php

私はこのhttps://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/service-phpのようにサーバー認証にサーバーを使用する必要がありますが、私はちょうどこの

$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']); 
var_dump($client->getAccessToken()) 

ような何かをした場合、私は私のJavascriptの認証

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> 
+0

は、あなたがその、新しいを取得するために行く前に、私は考える一つのリクエストを行う必要があり、このスクリプトで動作するようになりました....しようとする日後に解決策を見つけましたアクセストークン。試してみて、PHPが何かをリクエストしてください。 – DaImTo

+0

あなたは例を作ることができますか?私は少し失われています。 –

答えて

2

を助けてください。最後 それは

<?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> 
関連する問題