TravailleursDuWeb se BLACK OUT contre HADOPI

Vos twitts sur votre site web simplement (via Curl/PHP)

Publié le 20 February 2009, par Babozor dans la catégorie Outils

Voilà un moyen super simple pour afficher vos différents tweets sur votre site web via l’API de Twitter et Curl

la fonction de récupération des twitts:

function twitter_status($twitter_id, $hyperlinks = true) {
  $c = curl_init();
  curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/
user_timeline/$twitter_id.xml");
  curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 3);
  curl_setopt($c, CURLOPT_TIMEOUT, 5);
  $response = curl_exec($c);
  $responseInfo = curl_getinfo($c);
  curl_close($c);
  if (intval($responseInfo['http_code']) == 200) {
    if (class_exists('SimpleXMLElement')) {
      $xml = new SimpleXMLElement($response);
      return $xml;
    } else {
      return $response;
    }
  } else {
    return false;
  }
}

Pour afficher le résultat:
Exemple ici du twitter de busineo affiché sur busineo.com (les trois derniers twitts)

$twitter_xml=twitter_status('BUSINEO');
for($i=0;$i<3;$i++)
{
	$twitt=$twitter_xml->status[$i]->text;
	$twitt=preg_replace("/(http:\/\/|www|[a-zA-Z0-9-]+\.|
[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9
-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/","\\1\\2",$twitt);
	echo $twitt.' - '.date('d/m/Y H.i',strtotime($twitter_xml->
status[$i]->created_at)).'<br />';
}

Et vous d’autres méthodes?



Articles éventuellement en rapport:

10 Responses to “Vos twitts sur votre site web simplement (via Curl/PHP)”

  1. Darklg Says:

    Je couplerais ça avec un système de cache …
    Sinon ça va faire mal à ton site si quand Twitter plante :)

  2. Darklg Says:

    ( Pas de faute de frappe dans mon dernier Twitt, le html n’est pas pris en compte, zut ! )

  3. Raphaël Says:

    +1 pour Darklg, sans cache ça ralenti pas mal ta page et en ça la met en péril quand twitter est down (donc régulièrement ?).

    Perso j’adhère pas à l’intégration au milieu de la home. De plus, êtes vous certains que le public cible de busineo est vraiment utilisateur de twitter (je pense pas mais bon…) ? Vous ne twittez que des trucs intéressants pour les gens qui arrivent sur Busineo ? Parce que sinon ça peut vite faire tâche..

  4. Charles | Ad & mar Says:

    Je pense que le plus intéressant c’est au moins de filtrer. Les replies sont rarement intéressantes pour qui n’est pas de la communauté Twitter. Alors que les RT soun souvent très utiles.
    Donc faudrait faire un filtre pour n’afficher que les tweets, retweets, et enlever les replies.

    Je songeais à m’en coder aussi, mais ai eu la flemme de m’y mettre :)

  5. Clément Says:

    Un système de cache serait appréciable en effet, ou alors un chargement parallèle via XHR (ça permet de ne pas bloquer le reste de la page le temps que les tweets soient chargés)

    Pour ce qui est du filtrage, afficher les RT sur le site ne me parait pas une bonne idée. Tout dépend de comment est intégré l’affichage des tweets, mais tout le monde ne connait pas twitter, et le module sera vu par certains comme un moyen de broadcast, et pas de discussion. Un RT ou un @reply sera super déroutant pour ces personnes

  6. Darklg Says:

    ( Au fait, l’API est pas limitée à 100req / heures ? )
    Que se passe-t’il si on charge + de 100x la page sans système de cache ?

  7. p4bl0 Says:

    J’avais fais ça moi :

    function getLastTweet ($pseudo)
    {
    $tweet = simplexml_load_file(’http://twitter.com/statuses/user_timeline/’.$pseudo.’.xml?count=1′);
    return $tweet->status->text;
    }

    http://p4bl0.net/blog/post/My-last-Tweet.html

    Après faut traiter le retour de la fonction avec un str_replace(array(’&’, ”), array(’&’, ‘<’, ‘>’), ); ça peut aussi se faire dans la fonction directement, mais j’avais besoin de le récupérer propre aussi :-).
    Comme ça pas de regexp (c’est lent).

    Sinon pour “echo $twitt.’ - ‘.date(’d/m/Y H.i’,s…;” dans le post, il vaut mieux utiliser des ‘,’ pour echo-er plusieurs trucs que le ‘.’. Parce que avec le ‘.’ il y a d’abord une concaténation qui a lieu, et c’est coûteux. Alors qu’avec la ‘,’ c’est juste comme une succession de “echo”, et donc c’est plus rapide et ça bouffe moins de mémoire qu’avec une concaténation. :-).

  8. geekbay Says:

    Perso moi j’utilise cette petite classe php qui rend bien des services:

    http://twitter.slawcup.com/twitter.class.phps

    et simplement comme ca apres

    $t= new twitter();
    $t->username=’username’;
    $t->password=’password’;
    $status = $t->userTimeline()

    sinon avant on pouvais aussi avec jquery en faisant

    $.getJson(’http://twitter.com/statuses/user_timeline/busineo.json?callback=?’,function(data) {
    /*votre code ici*/
    })
    mais je crois que ce n’est plus autorise sans etre logged.

  9. Olivier Galluchot Says:

    Sinon il reste l’interrogation du flux RSS :
    http://utilisateur:mot_de_passe@twitter.com/statuses/friends_timeline.rss

    En passant par l’intermédiaire de Simple Pie, Magpie ou fetch_rss() de WP. De cette façon on est moins dépendant de la bonne santé de Twitter tout en profitant d’un système de cache.

  10. sebcreme Says:

    Il y a aussi la possibilité de ne pas passer par un backend serveur et de tout faire sur le client en js.

    http://remysharp.com/2007/05/18/add-twitter-to-your-blog-step-by-step/

    fait sur sebcreme.fr.

Laissez un commentaire





« Back to text comment