Accueil » Blog » Twitter Search API + SimplePie = un monde de possibilités (en 140 caractères)
Logos Twitter et Simplepie

Twitter Search API + SimplePie = un monde de possibilités (en 140 caractères)

publié le 28 octobre dans Twitter - 1 commentaire

Twitter regorge d’information qui est constamment mise à jour par ses utilisateurs, et les fonctions de recherches avancées Twitter permettent de filtrer ces ressources à sa guise.

SimplePie, le parseur de flux RSS, permet de facilement manipuler l’information recueillie et l’afficher sur son site internet.

Voici comment.

Twitter Search API

L’API de recherche Twitter est très simple d’utilisation, il suffit de copier un lien.

  1. Rendez-vous sur la page Twitter de recherches avancées ;
  2. Sélectionnez les mots-clés et filtres que vous souhaitez utiliser ;
  3. Lancer la recherche ;
  4. Vous remarquerez sur la droite un lien « Feed for this query » ;
    Twitter feed for this query

    Twitter feed for this query

  5. Copiez l’adresse du lien, si le résultat de recherche vous convient.

SimplePie

SimplePie est un parseur RSS codé en PHP, c’est-à-dire qu’il peut être utilisé pour récupérer sous forme d’array PHP l’information d’un flux RSS. Il suffit ensuite d’utiliser un script pour manipuler ces informations.

  1. Téléchargez SimplePie ;
  2. Installez les fichiers sur votre serveur et complétez les tests de compatibilité (fichiers nécessaires : simplepie.inc et dossier « compatibility_test ») ;
  3. Créez un nouveau fichier simple-twitter.php et copiez-y la fonction suivante :
    <?php
    function montreTwitter($adresse,$nombre){
    //import le fichier SimplePie - changer ce chemin 
    require_once('chemin/vers/simplepie.inc');
    
    //déclenche la fonction
    $filRSS = new SimplePie();
    $filRSS->set_feed_url($adresse);
    
    // n'utilisez pas le cache car besoin de mise à jour en temps réel
    $filRSS->enable_cache(false); 
    
    // appelle fonction SimpleRss
    $filRSS->init();
    $filRSS->handle_content_type();
    
    // si OK
    if ($filRSS->data){
    	// récupère les infos dans la limite donnée
    	$tous = $filRSS->get_items(0, $nombre);
    			
    	$infoTwitter = '';
    	$infoTwitter .= '<ul>';
    	
    	foreach ($tous as $chaque){
    		$description = $chaque->get_description(); //récupère la description
    		
    		// formate la liste et ajoute un rel="nofollow" à tous les liens
    		$remplace = '<a href=';
    		$par = '<a rel="nofollow" href=';
    		$infoTwitter .= '<li>'. str_replace($remplace,$par,$description).'</li>'; 
    
    	}//fin foreach
    	
    	$infoTwitter .= '</ul>';
    }else{
    	$infoTwitter = '<p><strong>Erreur !</strong>. Merci d'essayer plus tard.</p>';
    }
    return $infoTwitter ;
    }
    
    ?>
    
  4. Utilisez le code suivant là où vous souhaitez voir apparaitre votre information Twitter:
    <?php echo montreTwitter('adresse de la requête Twitter',10); ?>

    Le chiffre 10 contrôle le nombre de Tweets affichés. N’oubliez pas d’importer le fichier simple-twitter.php sur cette page.

Exemples d’utilisation

L’utilisation la plus courante est l’affichage de sa « timeline ». Vous avez le choix entre les deux méthodes suivantes :

<?php echo montreTwitter('http://twitter.com/statuses/friends_timeline/numdecompte.rss',10); ?>

Le chemin à copier se trouve sur votre profil Twitter. Remplacez numdecompte par le numéro indiqué, ou copiez carrément le lien.

Fil RSS sur le profil Twitter

Fil RSS sur le profil Twitter

ou

<?php echo montreTwitter('http://search.twitter.com/search.atom?q=compteid',10); ?>

Remplacer compteid par votre nom de compte, ex. pou moi il s’agit de propulsr.

Je préfère la seconde solution car utiliser la fonction de recherche met automatiquement en gras votre compteid dans le fil RSS renvoyé et donc lors de votre affichage.

Autres exemples

Afficher uniquement vos messages

Si vous souhaitez afficher uniquement vos propres Tweets – et pas tous les messages de votre « timeline ».

<?php echo montreTwitter('http://search.twitter.com/search.atom?q=from:compteid',10); ?>

« from: » utilisé pour limité les messages. Comme ci-dessus, changez compteid.

Ajout de contenu frais sans liens

Imaginons que votre site soit un aggrégateur d’assurance. Il se peut que vous souhaitiez montrer les Tweets qui parlent d’assurance (contenu frais) mais sans lien (pour éviter que vos visiteurs ne quittent votre site). Vous utiliserez alors :

<?php echo montreTwitter('http://search.twitter.com/search.atom?lang=fr&q=assurance+-filter%3Alinks',10); ?>

« lang=fr » permet d’avoir uniquement les messages français (ce paramètre n’est pas parfait), et « -filter:links » filtre les messages contenant des liens.

Et en utilisant l’expression régulière suivante à votre fichier simple-twitter.php vous désactiverez même les liens vers les profils et les hastags (qui sont automatiques dans le fichier XML créé par la recherche).

[...]
$infoTwitter = preg_replace('/<a (rel="nofollow")? ([href="http://twitter.com/]+[A-Za-z0-9./%&=?-_#]*+">)/', '', $infoTwitter);
$infoTwitter = preg_replace('/</a>/', '', $infoTwitter);
return $infoTwitter ;

Affichage des messages de personnes influentes ou d’amis

Si vous suivez un groupe de personnes influentes dans votre milieu, vous pouvez aisément afficher leur Tweets sur votre site.

Prenons le cas des référenceurs anglophones. Une sélection des personnes que vous souhaitez suivre pourrait être : Matt Cutts, SEOmoz, David Mihm, Danny Sullivan, Sphinn, SEOBook.

<?php
// utilisation d'array pour faciliter la mise à jour
$liste = array('mattcutts', 'seomoz', 'davidmihm', 'dannysullivan', 'sphinn', 'seobook');
//formattage de la liste pour être compatible avec le format de requête Twitter
$requete = '';
foreach ($liste as $chaque){
$requete .= 'from:'. $chaque .'+';
}
//effacer le dernier + (permet de raccourcir la requête)
$requete = substr($requete, 0, -1);
echo montreTwitter('http://search.twitter.com/search.atom?q='.$requete,10); ?>

Avantages et Inconvénients:

L’utilisation de Twitter search API et de SimplePie offre certains avantages sur les Widgets Twitters

  • possibilité de manipuler et de filtrer l’information recueillie ;
  • l’information est codée directement dans vos pages et accessible à tous (donc aux moteurs de recherche).

Inconvénients :

  • mise en forme nécessitant plus de travail, car l’information est brute ;

Autres inconvénients : la taille de la requête est 140 caractères maximum et retourne 15 résultats par défaut.

Abonnez-vous au blog

  • Envoyer
  • Digg
  • Del.icio.us
  • Stumble Upon
  • Facebook

{ 1 commentaire… lisez-le ci-dessous ou ajoutez-en un }

PizzaToy août 29, 2011 à 16:36

Laisser un commentaire