| WWW-Twitpic documentation | Contained in the WWW-Twitpic distribution. |
WWW::Twitpic::API - Twitpic simple API
Version 0.02
use WWW::Twitpic::API;
my $client = WWW::Twitpic::API->new(
username => 'a twitter username',
password => 'the big secret'
);
# post a new image to the twitter feed
$clent->post( '/path/to/image_filename' => 'The message for this pic' );
# or just upload the image to twitpic
$client->upload( '/path/to/image_filename' );
Upload the provided image to twitpic.com
Returns WWW::Twitpic::API::Response
Example: $api->upload( '/tmp/my_picture.jpg' );
See L<http://twitpic.com/api.do#upload>
Upload the provided image to twitpic.com and post it
on the username twitter feed with the optional
message provided.
Returns WWW::Twitpic::API::Response
Example: $api->post( '/tmp/my_picture.jpg' => "Look ma, I'm on twitter!");
See L<http://twitpic.com/api.do#uploadAndPost>
Create and POST a request and return a Twitpic::API::Response.
Diego Kuperman, <diego at freekeylabs.com>
Please report any bugs or feature requests to bug-www-twitpic-api at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-Twitpic. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc WWW::Twitpic
You can also look for information at:
Copyright 2009 Diego Kuperman, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| WWW-Twitpic documentation | Contained in the WWW-Twitpic distribution. |
package WWW::Twitpic::API; use Moose; use Moose::Util::TypeConstraints;
use LWP::UserAgent; use HTTP::Request::Common; use URI; use WWW::Twitpic::API::Response; our $VERSION = '0.01'; coerce 'WWW::Twitpic::API::Response' => from 'Str' => via { WWW::Twitpic::API::Response->new( xml => $_ ) }; has 'username' => ( is => 'rw', isa => 'Str' ); has 'password' => ( is => 'rw', isa => 'Str' ); has 'ua' => ( is => 'rw', isa => 'LWP::UserAgent', lazy => 1, default => sub { LWP::UserAgent->new() } ); has 'uri' => ( is => 'rw', isa => 'URI', default => sub { URI->new('http://twitpic.com') } ); has 'response' => ( is => 'rw', isa => 'WWW::Twitpic::API::Response', predicate => 'has_response', coerce => 1 );
sub upload { my ( $self, $file ) = @_; $self->_make_request({ path => '/api/upload', media => [ $file ] }); }
sub post { my ( $self, $file, $message ) = @_; $self->_make_request({ path => '/api/uploadAndPost', media => [ $file ], message => $message }); }
sub _make_request { my ( $self, $args ) = @_; my $url = $self->uri->clone; if ( my $path = delete $args->{path} ) { $url->path( $path ); } else { confess 'We need a path to make a request' } my $res = $self->ua->request( POST( $url, Content_Type => 'form-data', Content => [ username => $self->username, password => $self->password, %$args ] ) ); if ( $res->is_success ) { $self->response( $res->content ); return $self->response; } else { confess "Can't post to the server: " . $res->status_line; } }
1;