Blog de Portekoi : Programmation et Astuces

Programmation Cobol, Php, Asp, Java et DotNet…

Google Service Analytics : Utiliser OAuth2 authentification et l’API V3

Récemment, j’ai eu besoin d’utiliser Analytics pour récupérer le nombre de visiteurs pour une liste de sites.

Mon problème était que Google m’imposait un quota lorsque j’utilisais son API V1 (gapi.class.php)

La solution : passer par les « projects » de Google pour obtenir un quota de 50 000 requêtes par jour.

Je vais donc vous expliquer comment :

  1. Créer un projet dans la « Google APIs Console »
  2. Récupérer les informations importantes (Client ID / Email ID)
  3. Ajouter ces informations dans Google Analytics
  4. Faire un test d’appel en PHP

Mais avant tout, vous devez avoir OpenSSL d’installé sur votre serveur pour que cela fonctionne. Google Service ne peut fonctionner sans.

Créer un projet dans la « Google APIs Console »

Rendez-vous dans Google APIs Console à cette adresse : https://code.google.com/apis/console/

Sur la nouvelle interface, cliquez sur « Projects >> Create a Projects »

Vous obtiendrez ceci :

create_project

Renseignez ensuite le nom de votre projet et son ID (sans majuscule !)

Patientez un peu et voilà, le projet est créé.

Récupérer les informations importantes (Client ID / Email ID)

Une fois le projet créé, rendez vous à cette adresse : https://code.google.com/apis/console/

Si vous arrivez sur la liste, cliquez sur le projet concerné.

Ensuite, dans le menu de gauche, allez dans « APIs & auth >> Credentials » puis cliquez sur « Create a New Client ID ».

Choisissez « Service Account » puis téléchargez le fichier proposé (Sous la forme « 96d1dxxxxxxxxxx-privatekey » avec l’extension .p12)

Récupérer le client ID (qui ressemble à ça 123456789101112-abcdefgh1234.apps.googleusercontent.com) ainsi que l’email (qui ressemble à ceci : 123456789101112-abcdefghijkl@developer.gserviceaccount.com) dans le tableau.

Ces informations seront à placer dans notre fichier PHP. (EMAIL_ID / CLIENT_ID)

Nous avons toutes les informations nécessaires.

Ajouter ces informations dans Google Analytics

Rendez-vous à cette adresse : https://www.google.com/analytics/web/#management/Accounts/

Dans « Gestion des Utilisateurs », ajoutez l’email sauvegardé précédemment (123456789101112-abcdefghijkl@developer.gserviceaccount.com)

Assurez-vous que cet email est accès en « Lecture et Analyse » aux sites dont vous voulez récupérer les informations.

Faire un test d’appel en PHP

Télécharger le package de Google Service sur GitHub : https://github.com/google/google-api-php-client

Une fois fait, le plus dur est derrière nous.

Sur votre serveur, créez un nouveau dossier. Par exemple « GGServices ».

Placez dedans le dossier « Google » du package qui se trouve dans le dossier « src » soit le chemin complet : « google-api-php-client-master/src/Google/ » du .Zip

Placez aussi le fichier « *.p12 ». (Celui qui est sous la forme « 96d1dxxxxxxxxxx-privatekey »)

Créez ensuite un fichier Php ayant pour contenu : (En remplaçant les données par les votres) :

<?Php

set_include_path(PATH_SEPARATOR . get_include_path());
require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';

//Votre code site analytics. Quand vous consultez les stats d'un site avec cette url dans Analytics :
//https://www.google.com/analytics/web/#report/visitors-overview/abcd1234666p987365432/
//C'est le code se trouvant après le "p" soit : 987365432
define('ga_site','987365432');

$client = new Google_Client();
$client->setApplicationName("Mon Applicatin Test"); // Nom de votre application

// set assertion credentials
$client->setAssertionCredentials(
  new Google_Auth_AssertionCredentials(

    "EMAIL_ID", // email sous la forme 123456789101112-abcdefghijkl@developer.gserviceaccount.com

    array('https://www.googleapis.com/auth/analytics.readonly'),

    file_get_contents("FICHIER_P12.p12")  // Chemin vers le fichier p12

));

// other settings
$client->setClientId("CLIENT_ID");           // Client ID
$client->setAccessType('offline_access');  // Trouver sur un autre site mais pas certain que cela serve vraiment

// create service and get data
$service = new Google_Service_Analytics($client);

//Pour les visiteurs :
$dimensions = 'ga:date,ga:year,ga:month,ga:day'; //Format de la date

$gaData =
      $service->data_ga->get(
        'ga:' . ga_site,
        "2014-05-10",
        "2014-05-10",
        'ga:visitors',
        array('dimensions' => $dimensions)
      );

var_dump($gaData);

//Attention: cela donnera le résultat total pour le créneau de date choisi : si sur deux jours, ce sera le total pour les deux jours !!
//Sinon , il faut parcourir les "rows"
//var_dump($gaData->totalsForAllResults["ga:visitors"]);
?>

Et voilà, vous obtenez toutes les informations sur votre site.

Sur la « Google APIs Console », on peut aussi consulter le nombre de requêtes effectuées :
https://code.google.com/apis/console (dans overview)

Un commentaire sur “Google Service Analytics : Utiliser OAuth2 authentification et l’API V3

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *