Posté le 03 Juillet 2007 à 18:55
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);
}
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;
}
Merci à la documentation de l'API Twitter.
Jelle :
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 !
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 :
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 :
Super merci, et... désolé pour le bruit :D