&mymail;"> ]> p4bl0's blog > My last Tweet !

My last Tweet !

Je cherchais depuis quelque temps comment faire pour afficher sur mon site la dernière chose que j'avais dite sur Twitter autrement que par leur Flash ou leur JavaScript. J'ai tout de suite pensé que la solution serait d'avoir un fichier XML avec les données dedans, mais je ne l'avais pas trouvé (je savais qu'il existait grâce à un message d'erreur de Twitterrific).

Bon, il a en fait suffit que je descendre en bas de ma page Twitter pour voir qu'il y a un feed RSS :-D Parfait !

Voilà donc la fonction PHP (nécessite PHP 5 pour SimpleXML) que j'ai fait pour arriver à mes fins :
 → Code : getLastTweet
  1 
  2 
  3 
  4 
  5 
function getLastTweet ($name, $rss_feed) { $tweets = simplexml_load_file($rss_feed); return str_replace($name.':', '', $tweets->channel->item[0]->title); }
La fonction prend deux arguments. Le premier est votre nom sur Twitter (pas votre pseudo mais bien votre nom). Le second est l'adresse du feed RSS de vos Tweets. Cette adresse se trouve en bas de vote page twitter (http://twitter.com/votrePseudo). Il y a un lien "RSS Feed". C'est l'adresse vers laquelle pointe ce lien qu'il faut donner en second argument à la fonction getLastTweet().

Voici par exemple comment j'utilise cette fonction dans ma "sidebar" pour afficher mon dernier Tweet quand on survole la badge Twitter :
 → Code : Exemple d'utilisation
  1 
  2 
  3 
  4 
  5 
  6 
  7 
<a href="http://twitter.com/p4bl0" onmouseover="document.getElementById('myLastTweet').style.display='block';" onmouseout="document.getElementById('myLastTweet').style.display='none';"> <img src="images/80x15/twitter.png" width="80" height="15" alt="Twitter" class="badge" /> </a><br /> <div id="myLastTweet"> <img src="images/design/triangle-trans.png" width="13" height="15" alt=">" /> <?php echo getLastTweet('Pablo Rauzy', 'http://twitter.com/statuses/user_timeline/3778501.rss'); ?> </div>

Enjoy ! :-)

MISE À JOUR !! J'ai trouvé comment simplifier considérablement la fonction.
Elle ne prend plus qu'un seul argument qui est votre pseudo sur twitter.
Voilà le nouveau code :
 → Code : getLastTweet()
  1 
  2 
  3 
  4 
  5 
function getLastTweet ($pseudo) { $tweet = simplexml_load_file('http://twitter.com/statuses/user_timeline/'.$pseudo.'.xml?count=1'); return $tweet->status->text; }
Par exemple pour moi ça donne getLastTweet('p4bl0'); ce qui est quand même beaucoup plus simple :-)

Merci à la documentation de l'API Twitter.
Tags : php, Twitter | 3 commentaires | #92 | Trackback

Commentaires

Jelle :

Le 22 Septembre 2007 à 23:12
Bonsoir,
je suis bien intéressé par cette fonction, mais je ne parviens pas à la faire fonctionner.

J'ai testé avec différents flux RSS, en vain.

Pourriez-vous m'éclairer ?

D'avance, merci !
Cela devrait marcher en l'utilisant comme ceci : echo getLastTweet('pseudoTwitter');. Si cela ne fonctionne pas je suppose que c'est parce que PHP est en version 4 et que SimpleXML n'est disponible qu'a partir de PHP5. S'il y a moyen d'être sûr que c'est à cause de la version de PHP on peut essayer de faire une version de la fonction pour PHP4...
EDIT: Je viens d'aller voir le site eskimobleu. Il y a déjà un bidule Twitter qu'on peut déplacer et tout ! Alors pourquoi s'intéresser à ma petite fonction ?? Bon tant mieux moi j'en suis content hein ! ^^

Jelle :

Le 23 Septembre 2007 à 19:09
Je m'intéresse à ta fonction car elle me permettrait d'intégrer mes derniers Tweets dans une transparence quasi totale. Pas besoin de Javascript ou autre joyeuseté de ce genre. En outre, elle me permettrait d'avoir une mise en forme personnalisée différente de celle soumise par le script de Tweeter, et en français !
C'est exactement pour ces raisons que je l'ai développée : c'est la même dans "Some Stuff" de la page d'accueil et au survol du badge twitter dans la sidebar :-). Et puis j'ai pas de gros badge etc...
Au final, es-tu arrivés à la faire fonctionner ? Sinon donne moi ta version de PHP (echo phpversion();), si c'est inférieur à 5 je ferais une autre fonction qui fait la même chose mais pour PHP 4 si tu veux. Sinon le problème doit venir d'ailleurs mais je ne vois pas d'où...

EDIT: je viens d'essayer avec echo getLastTweet('Eskimobleu'); et ça marche bien :-).

Jelle :

Le 24 Septembre 2007 à 08:47
Ah ben ça fonctionne, j'avais un problème avec mes pages connexes (un plugin dotclear)...
Super merci, et... désolé pour le bruit :D
De rien, et pas de soucis (en plus ça fait des commentaires sous l'article ^^).

Ajouter un commentaire :

Formatage du texte : ##gras##, //italique//, --barré--, __souligné__.
Pour créer un lien, utilisez la syntaxe suivante : @[http://adresse/du/lien/](texte du lien).
Pour insérer du code, mettez le entre double crochets : [[votre code]].
Votre adresse email ne sera pas affichée.