Après avoir eu quelques démêlés pour tester l'API de Google en local sur Windows, notamment pour l'authentification SSL, j'ai décidé de vous faire part de ma solution car sur le net je n'ai pas trouvé grand chose à ce sujet ou très succinctement sur quelques forums.
Bien alors on va commencer depuis le début, histoire que personne soit perdu!
Tout d'abord vous devez posséder un compte Google puis accéder à la console développeur.
Pour cela suivez ce lien https://code.google.com/apis/console, ce sera plus rapide que de passer par les différents menus. Et cliquez sur Create projet... afin de pouvoir utiliser les APIs de Google.
Vous êtes maintenant sur le tableau de bord de votre console développeur.
Nous allons activer l'API de Google+ afin de pouvoir l'utiliser et pour cela cliquez sur Services à gauche de l'écran.
Vous pouvez activer d'autres services si le cœur vous en dit. Par contre vous aurez remarquez que vous êtes limités en nombre de requête par jour mais que vous pouvez repousser cette limite suivant vos besoins en le spécifiant à Google. Ici pour Google+ nous sommes limités à 1000 requêtes par jour.
Bien maintenant que nous avons activé le service, nous allons paramétrer les droits d'accès pour accéder au service distant. Cliquez sur API Access.
Créez un identifiant oAuth en générant un nouveau Client ID. Ici j'ai donné en Product Name le nom de mon site.
En Redirect URIs mettez l'endroit où vous avez placé l'API de Google en local. Et en JavaScript origins l'adresse vers le serveur local.
Redirect URIs : http://localhost/google-api-php-client/examples/plus JavaScript origins : http://localhost
Maintenant générez une nouvelle clé API (Simple API Access).
Une fois fait, dirigeons-nous vers la plateforme de l'API de Google+ : https://developers.google.com/+/api/
Allez dans la rubrique Downloads, téléchargez la librairie google-api-php-client
puis dézippez le tout sur votre serveur local. (Wamp par exemple)
On va s'attaquer maintenant au cœur du problème!
En vous rendant sur la page d'exemple de l'API de Google+ sur votre serveur à cette adresse http://localhost/google-api-php-client/examples/plus vous allez sur la page qui demande un accès.
Cliquez sur Connect Me (soyez connectés avec un compte ayant accès à Google+).
Et autorisez le site à accéder à votre compte Google+
Mais problème lors de la redirection vers votre serveur local!
Normalement vous tomberez sur cette erreur :
Fatal error: Uncaught exception 'apiIOException' with message ' in C:\wamp\www\google-api-php-client\src\io\apiCurlIO.php on line 121
apiIOException: HTTP Error: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in E:\wamp\www\google-api-php-client\src\io\apiCurlIO.php on line 121
Le message étant assez explicite, on peut se rendre compte qu'il s'agit d'un problème de gestion des certificats. C'est tout simplement votre serveur qui n'arrive pas à contacter l'autorité de certification.
Pour résoudre ce problème nous allons devoir ajouter une ligne de code dans le fichier apiCurlIO.php
Ouvrez le fichier et ajoutez cette ligne :
curl_setopt($ch, CURLOPT_CAINFO, 'C:/wamp/www/google-api-php-client/ca-bundle.crt');
Juste avant celle-ci :
$data = @curl_exec($ch);
Vous pouvez choisir l'endroit où se trouvera le fichier ca-bundle.crt.
Bien alors qu'est-ce ce fichier ca-bundle.crt et où le trouver ? Ce fichier contient un dictionnaire de certifications signées par la plupart des navigateurs et nous allons prendre par exemple celui de Mozilla.
Téléchargez l'Extract CA Certs de mozilla.org. C'est le fichier cacert.pem qui nous intéresse. Prenez-le, renommez-le ca-bundle.crt puis copiez-le dans le répertoire que vous avez spécifié en cURL option.
Voilà tout est fait. Ah oui pensez à activer le module Apache SSL, rafraîchissez la page où il y a l'erreur et ça devrait l'faire
Si vous avez des questions ou d'autres problèmes avec les APIs de Google n'hésitez pas
MISES A JOUR DE L'ARTICLE |
nice tutorial ! great!
je me demandait si c'est possible d’intégrer l'API Ganalytics sur un site Joomla.
le tracking va suivre des liens de QR-codes .
Hey, do you still manage to use google api in localhost? If so, could you tell me more about it please ?