Retour en haut

Tweets : vos derniers messages Twitter sur votre site grâce à PHP

posté le lundi 27 juillet 2009 à 21:07:32 par delphiki :: Web

Après vous avoir montré comment poster des messages sur votre compte Twitter relativement simplement, l'intérêt serait aussi de pouvoir afficher ces derniers sur votre site !

J'ai donc créé une petite classe qui va vous permettre de vous simplifier les choses.

Pour la télécharger, c'est par ici : tweets.zip
Attention : cette classe nécessite PHP >= 5.2.0 et la bibliothèque cURL !

L'utilisation est relativement simple. Voici un petit exemple (c'est le code qui me sert à afficher mes Tweets dans le menu) :

include('tweets.inc.php');
// on créé une nouvelle instance, avec en paramètre, le nom d'utilisateur Twitter
// et en deuxième paramètre optionnel, l'affichage en UTF8 ou ISO (true = UTF8)
$tw = new Tweets('delphiki', false);

for($i = 0; $i < 3; $i++){
	echo '<p class="twitter_status">'.$tw->status($i)->parsed_text.'</p>';
	echo '<p class="twitter_date"><a href="http://twitter.com/'.$tw->username.'/status/'.$tw->status($i)->status_id.'">'.$tw->status($i)->formated_date.'</a> <img src="img/twitter_icon.png" style="position:relative; top:3px;" alt="twitter" /></p>';
}

Vous avez accès à différentes méthodes :

/**
 * Permet de changer le nom d'utilisateur
 * @param string $username Nom d'utilisateur Twitter
 */
$tw->set_username($username);

/**
 * Permet de modifier le formattage de la date par défaut ('d M Y, H:i:s')
 * @param string $format
 */
$tw->set_date_format($format);

/**
 * Active ou désactive la conversion UTF8 -> ISO-8859-1
 * @param bool $utf8
 */
$tw->set_utf8_display($utf8);

Et voici les différentes informations auxquelles vous pouvez accéder pour chaque « status » (= tweet) :

$tw->status($i)->text; // le message
$tw->status($i)->parsed_text; // le message parsé en html (ajoute les liens sur http://, @pseudo et #tag)
$tw->status($i)->date; // date du message
$tw->status($i)->formated_date; // date formatée selon le format spécifié
$tw->status($i)->status_id; // id du message
$tw->status($i)->source; // source du message (web ou nom de l'application : twhirl, etc.)
$tw->status($i)->reply_to; // pseudo de la personne à qui on répond via le message


Commentaires :

# AddiKT1ve, le dimanche 11 octobre 2009 à 17:35:00

Félicitations et merci pour ton travail \o/

 
# delphiki, le dimanche 11 octobre 2009 à 21:08:36

Merci :)
Le cache marche finalement ?

 
# Mädchen spiele, le lundi 29 mars 2010 à 14:27:41

Twitter, pas aussi connu que son grand frère facebook, est une arme redoutable pour faire passer des messages ou créer le buzz. Par contre, à l'inverse de Facebook, je ne crois pas au potentiel actuel de twitter. C'est un phénomène de mode qui sera bien vite délaissé, du fait qu'il ne cible pas à mon sens un public assez large.

 
# delphiki, le lundi 29 mars 2010 à 17:23:02

Là je ne suis pas du tout du même point de vue. Twitter n'est pas "jeune", il est devenu à la mode en France depuis un ou deux ans, mais il était déjà très populaire à l'étranger avant et l'est de plus en plus. Sa force réside dans son principe du partage de l'information en quasi temps réel, et de pouvoir "dialoguer" ou avoir des nouvelles de certaines personnes relativement simplement.

Le principe de base est d'un simplicité extrême, alors que facebook, plus ça va, plus ça devient une usine à gaz où on se perd. Personnellement, plus le temps passe, plus je me lasse de Facebook. De plus, Twitter ne connait pas les problèmes qu'a Facebook par rapport au respect des droits de la vie privée, etc.

Bref le débat peut durer éternellement, mais je ne suis pas du tout du même avis que toi. ;)

 
# Corentin, le samedi 2 octobre 2010 à 18:30:26

Bonjour,
J'ai programmé il y'a plus d'un an un site web utilisant l'API Twitter. Il utilise plus précisément les mentions faites au compte de l'application. Je l'ai fait en utilisant Basic Auth et tout fonctionnait parfaitement jusqu'au 1er Septembre dernier, jour depuis lequel seul OAuth est utilisable. Et là je dois avouer que je me retrouve complètement dépassé. Je n'y comprend pas grand chose.

J'ai réussi à récupérer mes Access Key et Secret Key grâce à un de vos articles, mais je n'arrive absolument pas à récupérer les mentions. Existe-il une méthode simple (a.k.a. noobproof) qui permette de les récupérer une fois que l'on connait ces clés ?

Merci d'avance et bravo pour vos articles,

Corentin

 
# KevinP, le mercredi 9 février 2011 à 16:55:33

Parfait !

 
# custom essay, le mardi 22 février 2011 à 13:59:44

Juste pour une petite info. Je recherchais sur Tuto.com un ancien tuto du jour gratuit que vous avez proposez il n'y a pas très longtemps. Le tuto en question parlait de la création, sous 3DS Max10, d'un éclairage d'ambiance réaliste dans une pièce. Auriez-vous le nom de ce tuto :-|
Merci bien

 
# delphiki, le mardi 22 février 2011 à 16:49:28

Je ne suis pas sûr de vraiment voir de quoi vous parlez à vrai dire.

Je ne fréquente pas Tuto.com, et ne manipule pas 3DS Max. ;)

 
# SBAPM, le dimanche 14 octobre 2012 à 12:26:49

Bonjour, j'ai un petit soucis malheureusement... Votre code marchait à merveille jusqu'à ce que, depuis peu, je retrouve un message d'erreur comme celui-ci : "Fatal error: Call to a member function getElementsByTagName() on a non-object in /homepages/26/d244204929/htdocs/tweets.inc.php on line 73" à la place de l'affiche de mes derniers tweets.

D'ailleurs je remarque que chez vous aussi il y a un petit soucis dans les derniers tweets...

A bientôt je l'espère avec une possible réponse.

 
# delphiki, le mardi 16 octobre 2012 à 11:05:54

Bonjour,

En effet, c'est l'URL de l'api Twitter qui a changé, il faut la remplacer par celle-ci dans le fichier tweets.inc.php, à la ligne 176 :

http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=

 
# Finelog, le dimanche 27 janvier 2013 à 14:52:22

Dommage que l'on obtienne pas tous les tweets y comptris
les "retweeté".
Mais c'est génial

 
# construiremalin, le vendredi 27 septembre 2013 à 16:02:27

et pour les RSS de twitter vous avez quelque chose (depuis Juin on ne peux plus suivre des flux Twitter) ? Merci

 
Ajouter un commentaire