twittRSS.cgi

J’en avais besoin, voici mon script qui utilise l’API Twitter pour générer des flux RSS. Assez simple, le plus chiant est sans doute d’obtenir les credentials et le token. Le plus long (mais simple) est d’installer le module Net::Twitter depuis le CPAN.

#!/usr/bin/perl

use CGI;
use XML::RSS;
use Net::Twitter;
use HTML::Entities;
my $twt = Net::Twitter->new(
  traits => [qw/API::RESTv1_1/],
  consumer_key => VOTRE_CLEF_DEVELOPPEUR,
  consumer_secret => VOTRE_MOT_DE_PASSE_DEVELOPPEUR,
  access_token => TOKEN_APPLICATION,
  access_token_secret => MOT_DE_PASSE_DU_TOKEN
);
$cgi = new CGI();
if ($login = $cgi->param('login')) {
  eval {
    my $statuses = $twt->user_timeline({ count => 64, screen_name => $login });
    $rss = XML::RSS->new (version => '2.0');
    $rss->channel(
      title => "Tweets de $login",
      link => "https://twitter.com/$login");
    foreach $status (@$statuses) {
      $rss->add_item(
        title => decode_entities($status->{text}),
        link => "https://twitter.com/$login/status/".$status->{id};
    }
  };
  if($@) {
    print "Content-type: text/plain\n\nProblem because: $@\n";
  } else {
    print "Content-type: application/rss+xml\n\n".$rss->as_string;
  }
} else {
  print "Content-type: text/plain\n\nWho can you trust ?";
}

A vos quotas, prêts, partez !