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.
{
"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 :
<?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
).
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
$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 fonctiondate(DATE_ATOM)
qui produit un timestamp au format RFC 3339.
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.
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
$comment->actor->displayName
[/sourcecode]
object.content
: Le contenu du commentaire
$comment->object->content
[/sourcecode]
selfLink
: L’URL du commentaire
$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.
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 :
$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…
[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…