PHP - Configurer l’API Google analytic

, par  admin

Configuration de votre Projet Google

Se connecter à la Google API’s console :

https://code.google.com/apis/console/

Create project
Activer google analytic API

Menu API et authentification\ Identifiants
Créer un identifiant

Rendez vous ensuite dans le console de développement Google :
https://console.developers.google.com/project
Sélectionnez le projet que vous venez de créer. Vous avez accès à vos identifiants dans la section OAuth. Toujours de la section identifiants, créez une clé pour accéder à l’API depuis une IP publique dans le menu "Accès à l’IP publique". Entrez les adresses IP autorisées à se connecter à l’API.

Utilisation de l’API Google Analytics

Télécharger google-api-php-client :
https://github.com/google/google-api-php-client

Décompressez l’archive plus placez le dossier à la racine de votre projet.
Créer un fichier index.php et ajoutez les lignes suivante :

<?php
require_once 'google-api-php-client\src\Google\Client.php';
require_once 'google-api-php-client\src\Google\Service\Analytics.php';
?>

Attention, sur un serveur Linux il faut remplacer les "\" par des "/" :

La ligne suivante doit correspondre au chemin saisi dans l’URI de redirection de l’identifiant client (Google Developers Console) :

$client->setRedirectUri('http://localhost/google-api-php-client/src/Google/Auth/Oauth2.php');

PNG
Le fichier index.php doit ressembler grosso modo à ceci :

<?php  
session_start();      
require_once 'google-api-php-client\src\Google\Client.php';    
require_once 'google-api-php-client\src\Google\Service\Analytics.php';      
   
$client = new Google_Client();
   $client->setApplicationName("Client_Library_Examples");
   $client->setDeveloperKey("votreclédeveloppeur");  
   $client->setClientId('votre ID Client');
   $client->setClientSecret('mot de passe');
   $client->setRedirectUri('http://localhost/google-api-php-client/src/Google/Auth/Oauth2.php');
   $client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));

   //For loging out.
   if ($_GET['logout'] == "1") {
        unset($_SESSION['token']);
      }  

   // Step 2: The user accepted your access now you need to exchange it.
   if (isset($_GET['code'])) {
       
           $client->authenticate($_GET['code']);  
           $_SESSION['token'] = $client->getAccessToken();
           $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
           header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
   }

   // Step 1:  The user has not authenticated we give them a link to login    
   if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
           $authUrl = $client->createAuthUrl();
           print "<a class='login' href='$authUrl'>Connect Me!</a>";
       }        

   // Step 3: We have access we can now create our service
   if (isset($_SESSION['token'])) {
       print "<a class='logout' href='".$_SERVER['PHP_SELF']."?logout=1'>LogOut</a><br>";
           $client->setAccessToken($_SESSION['token']);
           $service = new Google_Service_Analytics($client);    

       // request user accounts
       $accounts = $service->management_accountSummaries->listManagementAccountSummaries();

      foreach ($accounts->getItems() as $item) {
                echo "Account: ",$item['name'], "  " , $item['id'], "<br /> \n";               
                foreach($item->getWebProperties() as $wp) {
                        echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebProperty: ' ,$wp['name'], "  " , $wp['id'], "<br /> \n";    
                       
                        $views = $wp->getProfiles();
                        if (!is_null($views)) {
                                foreach($wp->getProfiles() as $view) {
                                //        echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;View: ' ,$view['name'], "  " , $view['id'], "<br /> \n";    
                                }
                        }
                }
        } // closes account summaries

   }
print "<br><br><br>";
print "Access from google: " . $_SESSION['token'];
?>

Vous devez alors obtenir la page d’autorisation Google, il ne vous reste plus qu’à Accepter :
PNG

Un peu de théorie... Tous les cours théoriques