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;
}
?>
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;
}
?>