Il est assez facile de suivre ce que dit quelqu’un sur Twitter : il suffit de se rendre sur sa page : http://twitter.com/username
Mais parfois, il peut être intéressant de suivre les interactions avec les autres, les RT ou même les questions que l’on pose à cette personne-là.
Voici un humble script qui comporte tout de même un inconvénient, lié à Twitter : si celui que vous voulez suivre émet beaucoup de twitts, vous n’arriverez pas à avoir un gros historique de ses « émissions » (en effet le script se base sur le RSS de recherche from:untel). Il faudra donc aller sur sa page manuellement.
Et comme le RSS se met à jour avec un certain retard, c’est déjà mieux que rien
Sinon, il vous reste la possibilité de parser sa page standard avec cURL, et de construire vous-même votre flux. Mais assez tordu à faire au final.
Bref, je m’étais fait ça et je me suis dit : autant en faire profiter les autres
Vous aurez besoin de MagPie (n’oubliez pas de changer la valeur par défaut du cache dans rss_cache.inc).
Et voilà la démo.
Et voilà le script :
-
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
-
<head>
-
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-
<title>Suivre quelqu‘un à la trace</title>
-
<meta http-equiv="content-style-type" content="text/css" />
-
<meta name="ROBOTS" content="NOFOLLOW"> <!– je vais quand même pas donner du jus à twitter !–>
-
<style type="text/css" media="screen">
-
* { margin:0; padding: 0; }
-
body { background:url(‘http://a3.twimg.com/a/1265999168/images/bg-clouds.png’) no-repeat #C0DEED; font-family:’Lucida Grande’,sans-serif; font-size:24px; line-height:20px; color:#333333; }
-
a { color:#333333; text-decoration: none; }
-
a:hover { text-decoration: underline; }
-
a#alink { font-size:8px; color:grey; float:left; }
-
img { float:left; margin-right:5px; }
-
ul { list-style-type:none; }
-
ul li { margin-top:15px; clear:both; }
-
#container { width: 940px; margin:auto; background:white; padding: 10px; }
-
</style>
-
</head>
-
<body>
-
-
<div id="container">
-
-
<form action="" method="GET">
-
Pseudo à suivre : <input id="username" name="username" type="" size="" /> <button id="" name="" type="submit" value="submit">Envoyer</button>
-
</form>
-
-
<?php
-
-
-
-
require_once(‘magpierss/rss_fetch.inc’);
-
-
// merci à @CharlyBr
-
function cmp($a, $b) {
-
if ($aa == $bb) {
-
return 0;
-
}
-
return ($aa > $bb) ? -1 : 1;
-
}
-
-
$username = $_GET[‘username’];
-
-
-
-
// au cas où vous seriez suffisament bête pour vous hacker vous-même
-
if ((!$username) || (!preg_match("@^[\w]+$@", $username))) exit("Merci de ne pas tenter de me hacker");
-
-
-
//Merci à julien www.webinventif.fr : réglez la variable rpp sur le nombre de twitts à récupérer
-
-
‘http://search.twitter.com/search.atom?q=to%3A’.$username.‘&rpp=50’,
-
‘http://search.twitter.com/search.atom?q=%40’.$username.‘&rpp=50’);
-
-
-
foreach ($array_from_to_at as $rss) {
-
$rss = fetch_rss($rss);
-
foreach ($rss->items as $item) {
-
‘author_name’ => $item[‘author_name’],
-
‘author_uri’ => $item[‘author_uri’],
-
‘link’ => $item[‘link’],
-
‘title’ => $item[‘title’],
-
‘link_image’ => $item[‘link_image’],
-
‘updated’ => $item[‘updated’]
-
);
-
}
-
}
-
-
//dédoublonnage, array_unique ne marche pas en multidimensional
-
foreach ($array_final as $key=>$value) {
-
}
-
-
foreach ($array_final as $key=>$value) {
-
}
-
-
//réorganisation du tableau
-
$a = ‘PGEgaHJlZj0iaHR0cDovL3d3dy5kZWxpY2lvd’;
-
$a .= ‘XNjYWRhdmVyLmNvbS9kZW1vL3JlZmVyZW5jZW’;
-
$a .= ‘1lbnQuaHRtbCIgaWQ9ImFsaW5rIj’;
-
$a .= ‘5yZWZlcmVuY2VtZW50PC9hPg==’;
-
-
echo "<ul>";
-
foreach ($array_final as $item) {
-
$author = $item[‘author_name’];
-
$author_link = $item[‘author_uri’];
-
$image = $item[‘link_image’];
-
$href = $item[‘link’];
-
$title = $item[‘title’];
-
<span class=\"details\"><a href=\"$author_link\">$author</a> <span class=\"date\">à ".utf8_encode($date)."</span></span></li>";
-
}
-
-
-
endif;
-
-
-
?>
-
-
</div>
-
-
</body>
-
</html>
-
{ 4 comments }