Net::Wassr
ものすごい適当につくってみた。
package Net::Wassr; use strict; use warnings; use LWP::UserAgent; use JSON::Any; use Encode; our $VERSION = '0.01'; sub new { my $class = shift; my %args = @_; $args{apiurl} ||= 'http://api.wassr.jp'; $args{apihost} ||= 'api.wassr.jp:80'; $args{apirealm} ||= 'API Authentication'; $args{user} ||= ''; $args{passwd} ||= ''; $args{source} ||= 'Net::Wassr'; $args{ua} ||= LWP::UserAgent->new(); $args{ua}->credentials( $args{apihost}, $args{apirealm}, $args{user}, $args{passwd}, ); $args{ua}->env_proxy(); return bless {%args}, $class; } sub public_timeline { my $self = shift; return $self->_get('/public_timeline.json'); } sub friends_timeline { my ($self, $args) = @_; return $self->_get('/friends_timeline.json',$args); } sub user_timeline { my ($self, $args) = @_; return $self->_get('/user_timeline.json',$args); } sub show { my ($self, $args) = @_; return $self->_get('/show.json',$args); } sub update { my ($self, $args) = @_; my $encode = delete $args->{encode}; $encode ||= 'utf8'; $args->{source} ||= $self->{source}; Encode::from_to($args->{status}, $encode, 'utf8', 0); return $self->_get('/update.json',$args); } sub _get { my ($self , $api, $args) = @_; my $req = $self->{ua}->post($self->{apiurl} . $api, content => $args, ); return $req->is_success ? JSON::Any->jsonToObj($req->content) : undef; } 1;
APIも充実してるのでどんどんわさってください。