Présentation de l'API Google Analytics en PHP


précédentsommairesuivant

IV. Plus simple et plus facile avec le Zend Framework

IV-A. Présentation

Je vous propose maintenant de découvrir une solution plus simple d'utilisation, mais qui nécessite l'utilisation du Zend Framework. Cette solution repose sur le package GData , que vous pourrez télécharger ici.

L'avantage de cette solution est qu'elle est stable et compatible avec tous les Web Services (API) de Google. L'inconvénient (ca peut en être un sur de petits projets qui n'en n'ont pas un réel besoin) c'est qu'elle recquiert un nombre important de fichiers sur le serveur et une configuration qui supporte le ZF.

Pour la suite de cette section, je présupposerai que vous avez installé sur votre serveur le package GData du Zend Framework.

IV-B. Authentification

L'authentification est on ne peut plus simple :

 
Sélectionnez

//
// Authentification
$client = Zend_Gdata_ClientLogin::getHttpClient('mon.email@email.fr', 'mon.mot.de.passe', 'analytics');
$token = $client->getClientLoginToken();

Vous voilà déjà avec un jeton à usage multiple !

Vous remarquerez qu'ici on a passé directement les informations du compte du propriétaire de l'application. Il s'agit désormais d'une Authentification serveur (rappelez-vous que, jusqu'ici, nous n'utilisions que des Authentification client : les données étaient issues du compte du visiteur et non pas d'un cmpte unique commun à tous les visiteurs).

IV-C. Réception de données

Comme d'habitude, on récupère les données en appelant l'URL concernée, en envoyant en en-tête le jeton, qui nous renvoie un flux XML :

 
Sélectionnez

//
// requete vers le web service
$client 	= new Zend_Http_Client($url);
$client->setHeaders( "Authorization: GoogleLogin auth=".self::get('token') );
$r 	= $client->request(Zend_Http_Client::GET);
//
// on reçoit en réponse un flux XML : $xmlBody :
$xmlBody 	= $r->getBody();
//
// nettoyer les balises du flux
$xmlBody 	= str_replace('dxp:','',$xmlBody); 

IV-D. Exemple : lister tous les profils du compte

Pour lister les profils, nous utiliserons SimpleXML (vous devez donc l'avoir activé sur votre serveur) :

 
Sélectionnez

$url	= "https://www.google.com/analytics/feeds/accounts/default";
$client 	= new Zend_Http_Client($url);
$client->setHeaders( "Authorization: GoogleLogin auth=".self::get('token') );
$r 	= $client->request(Zend_Http_Client::GET);
$xmlBody 	= $r->getBody();
$xmlBody 	= str_replace('dxp:','',$xmlBody);
 
//
// utilisation de SimpleXML
$xml 		= simplexml_load_string($xmlBody);
$tProfiles	= array();	// tableau qui va recevoir tous les profils
 
//
// pour chaque résultat
foreach($xml->entry as $entry) {
 
	//
	// tableau qui va contenir temporairement les infos d'un seul profil
	$tVal 	= array();
 
	//
	// récupérer les infos principales
	$tVal['title']	= strval( $entry->title );
	$tVal['id']	= strval( $entry->id );
	$tVal['tableId']	= strval( str_replace('ga:', '', $entry->tableId) );
 
	//
	// récupérer les propriétés, qui sont stockées sous forme d'attribut, dans des noeuds "property"
	foreach($entry->property as $r) {
		$name	= strval($r['name']);
		$name	= trim( str_replace('ga:', '', $name) );
		$tVal[$name] = strval($r['value']);
	}
 
	//
	// ajouter au tableau final
	$tProfiles[]	= $tVal;
 
}
 
//
// afficher
print_r($tProfiles);

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Jean-François Lépine. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.