Publié le 04/05/2011
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
2 commentaires

Effectuer une recherche avec l'API Twitter

Le système de microblogging et la communauté Twitter n'est plus à présenter, le phénomène est devenu une outil de communication à part entière. Parmi les milliers de Tweet emis tous les jours, voyons comment utiliser l'API Twitter en PHP pour effectuer une recherche.

TwitterSearch, class de communication avec l'API Twitter

Une recherche sur Twitter se compose de l'envoi d'une requête puis le traitement des réponses au format XML ou JSON. La class TwitterSearch prend en charge ces opérations et propose 2 options:
- setTweetcount(): fixer le nombre de tweets à retourner,
- setLang(): sélectionner la langue des Tweets.
<?php
/**
 * Effectuer une recherche avec l'API Twitter
 * @copyright Fobec 2011
 */
class TwitterSearch {
    //réponse de l'API
    private $atom='';
    //nombre de tweet
    private $tweetcount=10;
    //langue
    private $lang='';
 
    /**
     * Lancer une requete sur Twitter
     * @param string $keyword mot clé
     */
    public function query($keyword) {
        $url='http://search.twitter.com/search.atom?';
        //url de la page
        $url.='q='.urlencode($keyword);
        //nombre de tweet
        if (!empty($this->tweetcount)) {
            $url.='&rpp='.$this->tweetcount;
        }
        if (!empty($this->tweetcount)) {
            $url.='&lang='.$this->lang;
        }
 
        $this->atom=file_get_contents($url);
    }    
    /**
     * Extraire les données sous forme d'un tableau
     * @return array
     */
    public function parseAsArray() {
        $out=array();
        $line=array('date'=>0, 'link'=>'', 'twimg'=>'', 'title'=>'', 'content'=>'');
        $xml=simplexml_load_string($this->atom);
 
        foreach($xml->entry as $item) {
            $line['date']=date("d-m-Y H:i:s",strtotime($item->published));
            $line['link']=(String)$item->link[0]["href"];
            $line['twimg']=(String)$item->link[1]["href"];
            $line['title']=(String)$item->title;
            $line['content']=(String)$item->content;
 
            $out[]=$line;
        }        
        return $out;
    }    
    /**
     * Fixer le nombre de Twwet à retourner
     * @param int $count 
     */
    public function setTweetcount($count) {
        $this->tweetcount=$count;
    }    
    /**
     * Fixer la langue des Tweet
     * @param string $lang 
     */
    public function setLang($lang) {
        $this->lang=$lang;
    }
}
?>

Exemple 1: recherche les derniers Tweets sur un thème

A l'aide la class TwitterSearch, effectuons la recherche suivante:
- mot clé: "Blackberry",
- nombre: 5 derniers Tweets,
- langue: francais.

Les résultats de la recherche sont affichés sous forme d'un tableau reprenant l'avatar, le contenu et la date du tweet.
<?php
/**
 * Exemple1: rechercher les derniers Tweet sur Blackberry
 */
$twittersearch=new TwitterSearch();
$twittersearch->setLang('fr');
$twittersearch->setTweetcount(5);
$twittersearch->query('blackberry');
$tweets=$twittersearch->parseAsArray();
foreach($tweets as $tweet) {
    $buf='<table border="0" width="500"><tr><td width="50" rowspan="2" style="border-top:1px solid #C0C0C0">';
    $buf.='<a href="'.$tweet['link'].'">';
    $buf.='<img src="'.$tweet['twimg'].'" style="border:0px"></a></td>';
    $buf.='<td width="450" style="border-top:1px solid #C0C0C0">'.$tweet['content'].'</td></tr>';
    $buf.='<tr><td width="450">'.$tweet['date'].'</td></tr></table>';
    echo $buf;
}
?>
Résultat:
twitterapi

Exemple 2: recherche les backlinks sur Twitter

Webmaster d'un site, voyons comment trouver les Tweets dans lesquels notre site web est cité Par exemple pour le site "developpez.com":
- mot clé: "developpez.com",
- nombre: 5 derniers Tweets,
- langue: toutes les langues.
<?php
/**
 * Exemple2: rechercher les derniers Tweet qui référencent Developpez.com
 */
$twittersearch=new TwitterSearch();
$twittersearch->setTweetcount(5);
$twittersearch->query('developpez.com');
$tweets=$twittersearch->parseAsArray();
foreach($tweets as $tweet) {
    $buf='<table border="0" width="500"><tr><td width="50" rowspan="2" style="border-top:1px solid #C0C0C0">';
    $buf.='<a href="'.$tweet['link'].'">';
    $buf.='<img src="'.$tweet['twimg'].'" style="border:0px"></a></td>';
    $buf.='<td width="450" style="border-top:1px solid #C0C0C0">'.$tweet['content'].'</td></tr>';
    $buf.='<tr><td width="450">'.$tweet['date'].'</td></tr></table>';
    echo $buf;
}
?>
Résultats:
twitterapi_seo

Conclusion sur l'API Twitter

Au travers des exemples Blackberry et recherche de bakclink, nous avons vu 2 illustrations de l'API de Twitter. En fait, ces fonctionnalités peuvent être utilisées dans de nombreuses applications autour de la plateforme de Twitter.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar PizzaToy

Publié par PizzaToy

le 02/07/2013 à 18:32:34

Salut,
super Class mais elle a fait son temps. Il faut maintenant passer la version 1.1 de l'API Twitter search et son authentification !

avatar Fobec

Publié par Fobec

le 04/07/2013 à 18:32:34

En effet, Twitter a modifie la structure de son API. P'etre qu'un jour, on trouve le temps pour finaliser un wrapper pour la version 1.1

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
04/05/2011
Visualisation
vu 4325 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans tuto

Bonjour,

Sur Fobec.com, nous utilisons mod_expires.c pour envoyer automatiquement un code 304 au navigateur internet.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType im...

Publié par Fobec dans tuto

Pour la distribution Linux Mint 12 Lisa, saisir dans le terminal:
# sudo service lightdm restart

Publié par angelofchaos dans java

Marche très bien , merci beaucoup :)

Publié par Fokoneh dans java

Je teste d'abord, Je reviens

Publié par Broker dans logiciel

C'est impressionnant, ca va devenir difficile de se cacher !