Changeset 9820d55 for perl/modules/Facebook/lib/Facebook
- Timestamp:
- Sep 19, 2011, 1:31:35 PM (12 years ago)
- Children:
- c104b43
- Parents:
- cfca761
- git-author:
- Edward Z. Yang <ezyang@mit.edu> (07/12/11 09:17:04)
- git-committer:
- Edward Z. Yang <ezyang@mit.edu> (09/19/11 13:31:35)
- Location:
- perl/modules/Facebook/lib/Facebook
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/modules/Facebook/lib/Facebook/Graph.pm
rcfca761 r9820d55 62 62 63 63 sub request_access_token { 64 my ($self, $code ) = @_;65 my $token =Facebook::Graph::AccessToken->new(64 my ($self, $code, $cb) = @_; 65 Facebook::Graph::AccessToken->new( 66 66 code => $code, 67 67 postback => $self->postback, 68 68 secret => $self->secret, 69 69 app_id => $self->app_id, 70 )->request; 71 $self->access_token($token->token); 72 return $token; 70 )->request(sub { 71 my ($response) = @_; 72 $self->access_token($response->token); 73 $cb->($response); 74 }); 73 75 } 74 76 75 77 sub convert_sessions { 76 my ($self, $sessions ) = @_;77 returnFacebook::Graph::Session->new(78 my ($self, $sessions, $cb) = @_; 79 Facebook::Graph::Session->new( 78 80 secret => $self->secret, 79 81 app_id => $self->app_id, 80 82 sessions => $sessions, 81 ) 82 ->request 83 ->as_hashref; 83 )->request($cb); # API change 84 84 } 85 85 … … 92 92 } 93 93 94 sub fetch { 95 my ($self, $object_name) = @_; 96 return $self->query->find($object_name)->request->as_hashref; 97 } 94 # XXX error handling 95 #sub fetch { 96 # my ($self, $object_name, $cb) = @_; 97 # $self->query->find($object_name)->request(sub { 98 # my ($result) = @_; 99 # $cb->($result->as_hashref); 100 # }); 101 #} 98 102 99 103 sub query { … … 540 544 L<Any::Moose> 541 545 L<JSON> 542 L<LWP> 543 L<LWP::Protocol::https> 546 L<AnyEvent::HTTP> 544 547 L<Mozilla::CA> 545 548 L<URI> -
perl/modules/Facebook/lib/Facebook/Graph/AccessToken.pm
rcfca761 r9820d55 7 7 use Facebook::Graph::AccessToken::Response; 8 8 with 'Facebook::Graph::Role::Uri'; 9 use LWP::UserAgent;9 use AnyEvent::HTTP; 10 10 11 11 has app_id => ( … … 43 43 44 44 sub request { 45 my ($self) = @_; 46 my $response = LWP::UserAgent->new->get($self->uri_as_string); 47 return Facebook::Graph::AccessToken::Response->new(response => $response); 45 my ($self, $cb) = @_; 46 http_get $self->uri_as_string, sub { 47 my ($response, $headers) = @_; 48 $cb->(Facebook::Graph::AccessToken::Response->new( 49 response => $response, 50 headers => $headers, 51 uri => $self->uri_as_string 52 )); 53 }; 48 54 } 49 55 -
perl/modules/Facebook/lib/Facebook/Graph/AccessToken/Response.pm
rcfca761 r9820d55 18 18 lazy => 1, 19 19 default => sub { 20 # LOL error handling 20 21 my $self = shift; 21 my $response = $self->response; 22 if ($response->is_success) { 23 return URI->new('?'.$response->content)->query_param('access_token'); 24 } 25 else { 26 ouch $response->code, 'Could not fetch access token: '.$response->message, $response->request->uri->as_string; 27 } 22 return URI->new('?'.$self->response)->query_param('access_token'); 23 #else { 24 # ouch $response->code, 'Could not fetch access token: '.$response->message, $response->request->uri->as_string; 25 #} 28 26 } 29 27 ); … … 33 31 lazy => 1, 34 32 default => sub { 33 # LOL error handling 35 34 my $self = shift; 36 my $response = $self->response; 37 if ($response->is_success) { 38 return URI->new('?'.$response->content)->query_param('expires'); 39 } 40 else { 41 ouch $response->code, 'Could not fetch access token: '.$response->message, $response->request->uri->as_string; 42 } 35 return URI->new('?'.$self->response)->query_param('expires'); 36 #else { 37 # ouch $response->code, 'Could not fetch access token: '.$response->message, $response->request->uri->as_string; 38 #} 43 39 } 44 40 ); -
perl/modules/Facebook/lib/Facebook/Graph/Publish.pm
rcfca761 r9820d55 7 7 use Facebook::Graph::Response; 8 8 with 'Facebook::Graph::Role::Uri'; 9 use LWP::UserAgent; 9 use AnyEvent::HTTP; 10 use LWP::UserAgent; # XXX blegh 11 use HTTP::Request::Common; 10 12 use URI::Encode qw(uri_decode); 11 13 … … 42 44 43 45 sub publish { 44 my ($self ) = @_;46 my ($self, $cb) = @_; 45 47 my $uri = $self->uri; 46 48 $uri->path($self->object_name.$self->object_path); 47 my $response = LWP::UserAgent->new->post($uri, $self->get_post_params); 48 my %params = (response => $response); 49 if ($self->has_secret) { 50 $params{secret} = $self->secret; 49 # XXX blegh 50 my $request = LWP::UserAgent->new->request(POST $uri->as_string, $self->get_post_params); 51 http_post $uri->as_string, $request->content, sub { 52 warn "whooo"; 53 my ($response, $headers) = @_; 54 my %params = ( 55 response => $response, 56 headers => $headers, 57 uri => $uri->as_string 58 ); 59 if ($self->has_secret) { 60 $params{secret} = $self->secret; 61 } 62 $cb->(Facebook::Graph::Response->new(%params)); 51 63 } 52 return Facebook::Graph::Response->new(%params);53 64 } 54 65 -
perl/modules/Facebook/lib/Facebook/Graph/Query.pm
rcfca761 r9820d55 7 7 use Facebook::Graph::Response; 8 8 with 'Facebook::Graph::Role::Uri'; 9 use LWP::UserAgent;9 use AnyEvent::HTTP; 10 10 use URI::Encode qw(uri_decode); 11 11 … … 183 183 184 184 sub request { 185 my ($self, $uri) = @_; 186 $uri ||= $self->uri_as_string; 187 my $response = LWP::UserAgent->new->get($uri); 188 my %params = (response => $response); 189 if ($self->has_secret) { 190 $params{secret} = $self->secret; 191 } 192 return Facebook::Graph::Response->new(%params); 185 my ($self, $cb) = @_; 186 my $uri = $self->uri_as_string; 187 http_get $uri, sub { 188 my ($response, $headers) = @_; 189 my %params = ( 190 response => $response, 191 headers => $headers, 192 uri => $uri 193 ); 194 if ($self->has_secret) { 195 $params{secret} = $self->secret; 196 } 197 $cb->(Facebook::Graph::Response->new(%params)); 198 }; 193 199 } 194 200 -
perl/modules/Facebook/lib/Facebook/Graph/Response.pm
rcfca761 r9820d55 13 13 ); 14 14 15 has headers => ( 16 is => 'ro', 17 required=> 1, 18 ); 19 20 has uri => ( 21 is => 'ro', 22 required=> 1, 23 ); 24 15 25 has as_string => ( 16 26 is => 'ro', … … 18 28 default => sub { 19 29 my $self = shift; 20 return $self->response->content; 30 if (!defined $self->response) { 31 ouch $self->headers->{Status}, $self->headers->{Reason}, $self->uri; 32 } 33 if ($self->headers->{Status} < 200 || $self->headers->{Status} >= 300) { 34 my $type = $self->headers->{Status}; 35 my $message = $self->response; 36 my $error = eval { JSON->new->decode($self->response) }; 37 unless ($@) { 38 $type = $error->{error}{type}; 39 $message = $error->{error}{message}; 40 } 41 ouch $type, 'Could not execute request ('.$self->uri.'): '.$message, $self->uri; 42 } 43 return $self->response; 21 44 }, 22 45 ); … … 27 50 default => sub { 28 51 my $self = shift; 29 my $response = $self->response; 30 if ($response->is_success) { 31 return $response->content; 32 } 33 else { 34 my $message = $response->message; 35 my $error = eval { JSON->new->decode($response->content) }; 36 unless ($@) { 37 $message = $error->{error}{type} . ' - ' . $error->{error}{message}; 38 } 39 ouch $response->code, 'Could not execute request ('.$response->request->uri->as_string.'): '.$message, $response->request->uri->as_string; 40 } 52 return $self->as_string; 41 53 }, 42 54 ); -
perl/modules/Facebook/lib/Facebook/Graph/Session.pm
rcfca761 r9820d55 7 7 use Facebook::Graph::Response; 8 8 with 'Facebook::Graph::Role::Uri'; 9 use LWP::UserAgent;9 use AnyEvent::HTTP; 10 10 11 11 has app_id => ( … … 38 38 39 39 sub request { 40 my ($self) = @_; 41 my $response = LWP::UserAgent->new->get($self->uri_as_string); 42 return Facebook::Graph::Response->new(response => $response); 40 my ($self, $cb) = @_; 41 http_get $self->uri_as_string, sub { 42 my ($response, $headers) = @_; 43 $cb->(Facebook::Graph::Response->new( 44 response => $response, 45 headers => $headers, 46 uri => $self->uri_as_string 47 )); 48 }; 43 49 } 44 50
Note: See TracChangeset
for help on using the changeset viewer.