Fermer
DéveloppementGoogleWeb

Mise en oeuvre de l’API Google+ en PHP : Partie 3 – Récupérez les commentaires de vos activités

Mise en oeuvre de l’API Google+ en PHP : Partie 3 – Récupérez les commentaires de vos activités – comments.list

Après avoir récupéré votre profil Google+, puis récupéré la liste de vos activités, je vous propose aujourd’hui d’aborder le dernier article de notre série de mise en œuvre de l’API Google+ en PHP. Il va s’agir d’un point intéressant, notamment dans la création de vos futurs applications. Nous allons, récupérer les commentaires de chacune de vos publications. Très intéressant non ?

En implémentant les deux premières fonctionnalités nous avons abordé le problème d’authentification, en récupérant une clé API. Nous laisserons donc celle-ci de côté dans cette troisième partie. Si jamais vous avez oublié, je vous propose de vous référer à l’article sur la première partie.

Récupérer la liste des commentaires

Comme je l’expliquais ci-dessus je ne vais pas reprendre la phase d’authentification, donc une fois la clé API récupérée, nous pouvons commencer à réaliser notre service pour récupérer les commentaires.

« Comments »

Le service « Comments » proposé par l’API permet de récupérer les commentaires à une activité. Les méthodes liées aux commentaires permettent à votre application de récupérer une liste de commentaires et en obtenir un seul. Pour cette dernière on se servira de l’identifiant unique (ID) du commentaire.

Donc, ce service propose deux méthodes :

  • list : Liste de tous les commentaires pour une activité.
  • get : Obtenir un commentaire

Note : On pourra une nouvelle fois regretter de ne pas avoir accès à une méthode update, qui nous permettrait de partager un commentaire.

Structure de données JSON

Tout comme les structures de l’API Google+, un commentaire (comment) est représenté telle une structure de données JSON, comme indiqué ci-dessous. Cette structure est envoyée dans le corps d’une requête, ou reçue dans le corps d’une réponse.

La représentation ci-dessous est l’ensemble des champs disponibles que peut contenir un commentaire.

[sourcecode language= »javascript »]
{
"kind": "plus#comment",
"id": string,
"published": datetime,
"updated": datetime,
"actor": {
"id": string,
"displayName": string,
"url": string,
"image": {
"url": string
}
},
"verb": "post",
"object": {
"objectType": "comment",
"content": string
},
"selfLink": string,
"inReplyTo": [
{
"id": string,
"url": string
}
]
}
[/sourcecode]

Note : Vous pouvez également retrouver la structure complète des propriétés ici.

Nous voilà prêts à récupérer les informations !

Appel de la méthode list

Comme annoncé précédemment deux méthodes sont possibles. La première utilisée est comments.list. Celle-ci va être envoyée à travers une requête HTTP afin de récupérer notre structure JSON.

Nous utilisons, comme depuis le début, deux méthodes PHP. La première, file_get_contents() pour récupérer nos données au format JSON à partir de notre URL, la seconde json_decode(), pour convertir nos données JSON en une variable PHP, afin de permettre de manipuler facilement les données.

Concernant l’URL de l’appel HTTP voici comment elle doit être construite :

https://www.googleapis.com/plus/v1/activities/ID/comments

avec :

  • ID : L’identifiant de l’activité pour laquelle vous voulez obtenir les commentaires

Avec ces informations nous sommes prêts à récupérer nos activités :

[sourcecode language= »PHP »]
<?php

$comments_json = file_get_contents("https://www.googleapis.com/plus/v1/activities/ID/comments?key=VOTRECLEAPI");
if ($comments_json === false) {
echo "<div class=’error-box’>Erreur : Impossible de récupérer les commentaires</div>";
return;
}
$comments = json_decode($comments_json);

echo "<pre>";
print_r($comments);
echo "</pre>";
?>
[/sourcecode]

Note : Les deux informations que vous devez modifier dans le code ci-dessus, c’est l’identifiant de l’activité (ici ID) et la clé de votre API (ici votre VOTRECLEAPI).

[sourcecode language= »PHP »]
stdClass Object
(
[kind] => plus#commentFeed
[nextPageToken] => 1
[title] => Plus Comments Feed for Quelqu’un serait in…
[updated] => 2011-10-14T20:52:15.614Z
[id] => tag:google.com,2010:/plus/activities/z124vvipxqznsfa0d221y3ezxsztynun4/comments
[items] => Array
(
[0] => stdClass Object
(
[kind] => plus#comment
[id] => NVkrT26QEQ4EN6Jw33MX7Gm54jCGoeFlORQXIrThegXMz8QG-o1xglfgJ7oN1FSoZt_wnMBrlus
[published] => 2011-10-14T19:40:04.082Z
[updated] => 2011-10-14T19:40:04.082Z
[actor] => stdClass Object
(
[id] => 111236186820357166076
[displayName] => Caroline Notari
[url] => https://plus.google.com/111236186820357166076
[image] => stdClass Object
(
[url] => https://lh4.googleusercontent.com/-vBtTlw9xOM8/AAAAAAAAAAI/AAAAAAAAAAA/LQ6A7XBsh50/photo.jpg
)

)

[verb] => post
[object] => stdClass Object
(
[objectType] => comment
[content] => yes i am 🙂
)

[selfLink] => https://www.googleapis.com/plus/v1/comments/NVkrT26QEQ4EN6Jw33MX7Gm54jCGoeFlORQXIrThegXMz8QG-o1xglfgJ7oN1FSoZt_wnMBrlus
[inReplyTo] => Array
(
[0] => stdClass Object
(
[id] => z124vvipxqznsfa0d221y3ezxsztynun4
[url] => https://plus.google.com/116475369142621368056/posts/2Y8km3Xfvj2
)

)

)

)

)
[/sourcecode]

Le résultat affiché ci-dessus n’est pas vraiment ce que l’on reçoit lors de l’appel. Pourquoi ? Tout simplement car ce dernier a été tronqué pour l’affichage (un seul commentaire).

Maintenant nous allons voir comment extraire les différentes informations d’un commentaire.

Extraction des informations nécessaires

Dans la structure de chaque commentaire on retrouve :

  • actor : La personne qui a publié le texte du commentairev
  • object : Le contenu du commentaire
  • published : La date de création du commentaire
  • updated : La date de mise à jour du commentaire

De plus on va retrouver l’objet inReplyTo qui va contenir deux propriétés, id correspondant à l’identifiant de l’activité du commentaire et url étant l’URL de l’activité.

En partant de cette analyse nous sommes prêts à récupérer toutes les informations de l’objet comments. Voici les propriétés que nous allons récupérer :

  • id : L’identifiant du commentaire
[sourcecode language= »PHP »]
$comment->id
[/sourcecode]
  • published : Date de publication du commentaire. Cet attribut produit un timestamp conforme à la norme RFC 3339. Pour le convertir, nous allons utiliser la fonction date(DATE_ATOM) qui produit un timestamp au format RFC 3339.
[sourcecode language= »PHP »]
strftime("%d-%m-%Y %H:%M:%S", strtotime(date(DATE_ATOM, strtotime($comment->published))))
[/sourcecode]
  • updated : Date de mise à jour du commentaire. Nous réalisons la même conversion que précédemment.
[sourcecode language= »PHP »]
strftime("%d-%m-%Y %H:%M:%S", strtotime(date(DATE_ATOM, strtotime($comment->updated))))
[/sourcecode]
  • actor.displayName : Le nom de l’acteur qui a publié le commentaire
[sourcecode language= »PHP »]
$comment->actor->displayName
[/sourcecode]
  • object.content : Le contenu du commentaire
[sourcecode language= »PHP »]
$comment->object->content
[/sourcecode]
  • selfLink : L’URL du commentaire
[sourcecode language= »PHP »]
$comment->selfLink
[/sourcecode]

Affichage de la structure

Nous venons de récupérer toute notre structure, nous avons juste à afficher les informations. Voici un exemple d’affichage :

Note : Vous pourrez le retrouver en visualisant la démo et en téléchargeant les sources.

Mise en oeuvre de l’API Google+ en PHP : Partie 3 - Récupérez les commentaires de vos activités - comments.list

Appel de la méthode get

Pour la structure « Comments », nous disposons d’une deuxième méthode. Celle-ci permet de récupérer un commentaire à partir de son identifiant (id).

Pour l’appeler c’est très simple il suffit de construire l’URL comme suit :

https://www.googleapis.com/plus/v1/comments/ID

avec :

  • ID : Identifiant du commentaire que l’on souhaite récupérer

Avec cette information nous sommes prêts à récupérer notre commentaire :

[sourcecode language= »PHP »]
$comment_json = file_get_contents("https://www.googleapis.com/plus/v1/comments/ID?key=VOTRECLEAPI);
if ($comment_json === false) {
echo "<div class=’error-box’>Erreur : Impossible de récupérer les informations du commentaire</div>";
return;
}
$comment = json_decode($comment_json);
[/sourcecode]

Note : Les deux informations que vous pouvez modifier dans ce code, c’est l’identifiant du commentaire (ici ID) et la clé de votre API (ici votre VOTRECLEAPI).

En cas de succès, cette méthode retourne une ressource « comments » dans le corps de la réponse, autrement dit la même ressource que nous avons analysée précédemment. Heureusement j’ai envie de dire… 🙂
En revanche, nous n’aurons pas besoin de réaliser une boucle sur les résultats, car seul le commentaire demandé sera retourné. Hum…

Mise en oeuvre de l’API Google+ en PHP : Partie 3 - Récupérez les commentaires de vos activités - comments.get

[samples id= »7312″]

Conclusion

La mise en œuvre de l’API Google+ en PHP s’achève avec cette troisième partie. Dans ces trois tutoriels nous avons vu comment récupérer les informations nécessaires à l’affichage de votre profil Google+ et y associer vos activités, autrement dit vos publications faites sur le service social et enfin avec ce tutoriel comment récupérer les commentaires associés à vos activités.

Comme je l’ai déjà dis dans les deux précédents opus, on pourra regretter de ne pas avoir une méthode (update) afin de mettre à jour notre profil, ajouter ou mettre à jour une activité, mais aussi pour les commentaires. Même si l’on devrait y avoir accès prochainement pour le moment l’utilité de l’API semble restreinte.

Une fois que nous aurons ces fonctionnalités, il sera plus facile pour les applications d’être compétitives avec celles que l’on peut avoir pour Twitter et Facebook.

J’espère que ces trois parties vont vous permettre d’aborder sereinement vos propres projets ! D’autres tutoriels viendront peut-être par la suite en fonction de si oui ou non Google ajoute des nouveautés sur l’API Google+.

En utilisant cet API Google+, allez-vous développer votre propre application ? Ou est-ce déjà fait ? Qu’avez-vous pensé de ces trois tutoriels ? Répondent-ils à vos attentes ? Venez répondre à ces questions dans la partie commentaires…

Mots-clé : APIcommentairescommentsgoogle+ apigoogleplusPHPsamples
Yohann Poiron

L’auteur Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.

  • Nicolas Lescure

    Je pense qu’il est préférable d’utiliser vraiment l’API fournie par Google, même pour récupérer les commentaires publics. En effet, lorsqu’il sera possible à une application d’accéder à des informations privée, la méthode file_get_contents ne devrait plus suffire.

    Ex : $client = new apiClient();

    • Effectivement Nicolas, ce sera l’objet d’un prochain tutoriel (si j’ai le temps :)) ! Ici il s’agissait plus d’un retour sur ce que l’on pouvait faire avec l’API ! Mais excellente remarque 😉

Lire les articles précédents :
Les acteurs du Web en ont parlé [#13]

Nous voici comme à chaque fin de semaine à la sélection de nos acteurs du Web. Contrairement aux autres semaines...

Fermer