Here’s a stab at a script for posting to Twitter:
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use XML::Simple;
use URI::Escape;
my $username = 'your_twitter_username';
my $password = 'your_twitter_password';
my $message = shift or die "usage: $0 message\n";
if ( length $message >= 140 ) {
$message = substr( $message, 0, 139 );
warn "truncating message to: $message\n";
}
$message = uri_escape( $message );
my $ua = LWP::UserAgent->new();
# tell Twitter who we are
$ua->agent( "$0/0.1 " . $ua->agent );
my $req = HTTP::Request->new( POST =>
'http://twitter.com/statuses/update.xml');
$req->content_type( 'application/x-www-form-urlencoded' );
$req->authorization_basic( $username, $password );
$req->content( "status=$message" );
my $res = $ua->request( $req );
my $xml;
if ( $res->is_success ) {
$xml = XMLin( $res->content );
} else {
print "Posting failed " . $res->status_line . "\n";
}
my ( $created, $name, $screen_name, $id ) =
( $xml->{created_at},
$xml->{user}->{name},
$xml->{user}->{screen_name},
$xml->{id} );
print << "EOF";
Your message
$message
was succesfully posted at $created
as user $name ($screen_name) with ID $id.
EOF
Thanks to Jim for the inspiration.
By the way, I’m gerikson at Twitter.
Update 2007-03-27: I removed the wget version as I don’t maintain
it any more.
This Twitter API wiki is pretty helpful.