Articles récents
PHP : Afficher vos tweets sur votre site web
Cet article est obsolète, il y a une mise à jour qui est disponible via http://www.doritique.fr/Articles/View_Article.php?num_article=36
Est-il possible d'afficher des messages twitter (tweets) sur un site web?
Oui, le site Twitter propose tout ce qu'il faut ou presque... Twitter consacre même un site web dédié aux développeurs via https://dev.twitter.com/.
Le site est assez complet avec pas mal d'exemples, maintenant pas évident de s'y retrouver et de comprendre sa structure. Bref, j'ai un peu galéré.
En fait, Twitter fournit aux développeurs une API très puissante permettant de requêter "under control" sur sa base de données. Notamment, l'API fournit un service web de type REST et renvoie des réponses en utilisant JSON. On retrouve un peu la même architecture que celle de google avec la Custom Search API.
REST - JSON, KESAKO?
REST (REpresentational State Transfer) est un type d'architecture que l'on utilise de plus en plus pour réaliser un service web. Il est plus simple à mettre en oeuvre que SOAP mais n'est pas définit précisément par un standard. REST est basé sur des requêtes transmises par des protocoles standards (http, ftp, ...), il renvoie un fichier souvent au format XML ou JSON.JSON (JavaScript Object Notation) est un format de structuration des données. Les données sont considérées comme des objets avec des propriétés et sous-propriétés. Ce formalisme est assez proche de XML et est basé sur le langage javascript. Une page sur Wikipedia résume très bien JSON. A noter que Google utilise ce formalisme avec ses web applications.
Fonctionnement de l'API de twitter:
Aprés avoir lu la documentation du site dédié aux développeurs, j'ai donc opté pour utiliser le web service REST de Twitter. Comme je l'ai précisé ci-dessus, REST répond à des requêtes http, il suffit de suivre la documentation de Twitter pour choisir les options qui nous conviennent. Le service web REST de Twitter répondera en transmettant un fichier au format JSON.Vous pouvez faire un test avec un navigateur de votre choix en tapant l'url (il vous faudra préciser votre login à la place du mien) : http://api.twitter.com/1/statuses/user_timeline.json?screen_name=rdorigny&count=1
Le navigateur vous proposera d’enregistrer le fichier user_timeline.json. Si on enregistre le fichier et qu'on l'édite alors ce donne:
Le fichier JS est en vrac mais on retrouve le texte du tweet avec la variable text codé en UTF8, le tout noyé dans beaucoup d'informations complémentaires.
Comment faire cela?
Il s'agit donc d'exploiter le service web, deux solutions sont possibles :J'ai choisit la seconde solution, plus simple à réaliser car le code javascript coté client est assez difficile à produire et à maintenir pour un grand nombre de navigateurs.
Par ailleurs, PHP propose la fonction json_decode qui transforme le code JSON en un objet, ainsi que la fonction utf8_decode. Ces deux fonctions vont grandement simplifier le script PHP.
Donc un exemple de code PHP pour afficher vos tweets :
Tweets récents
- ");
foreach ($tweets as $tweet)
{
$date = date_format (date_create($tweet->created_at), $format);
print("
- ".utf8_decode($tweet->text)." ".$date." "); } //Affichage du bouton twitter de suivi pour votre profil print("
En fin de script, vous trouverez ce qu'il faut faire pour afficher un bouton de suivi Twitter.