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 3019 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par bob le poisson dans java

Bonjour, votre script est tres bien mais attention l'utilisation du mot cle static sur la methode scale(BufferedImage bImage, double factor) est inutile et empeche de liberer la ressource.

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par fffffff dans CMS

tesffff

Publié par Fobec dans logiciel

prise en charge du format ipV6. L'api est compatible avec tous les ip qu'elles soient au format ipV4 ou ipV6.

Publié par mfranca dans CMS

Bonjour, Excellent outil pour moi, très interessant pour mes recherches en amateur...
Merci pour cette création Olubil
Ciao ciao