From a5a98d36557214999f35d5d809cf35aa03b91a59 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 10 May 2015 20:36:29 -0400 Subject: generate the oauth url in the module, not the script --- lib/WWW/Pocket.pm | 35 ++++++++++++++++++++++++++++++----- lib/WWW/Pocket/Script.pm | 4 ++-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/lib/WWW/Pocket.pm b/lib/WWW/Pocket.pm index 6a3669c..2b032f0 100644 --- a/lib/WWW/Pocket.pm +++ b/lib/WWW/Pocket.pm @@ -29,7 +29,29 @@ has username => ( has base_uri => ( is => 'ro', isa => 'Str', - default => 'https://getpocket.com/v3/', + default => 'https://getpocket.com/', +); + +has api_base_uri => ( + is => 'ro', + isa => 'Str', + lazy => 1, + default => sub { + my $base = $_[0]->base_uri; + $base =~ s{/$}{}; + return "$base/v3/" + }, +); + +has auth_base_uri => ( + is => 'ro', + isa => 'Str', + lazy => 1, + default => sub { + my $base = $_[0]->base_uri; + $base =~ s{/$}{}; + return "$base/auth/" + }, ); has ua => ( @@ -46,13 +68,16 @@ sub start_authentication { return if $self->has_access_token; my $response = $self->_request( - $self->base_uri . 'oauth/request', + $self->api_base_uri . 'oauth/request', { consumer_key => $self->consumer_key, redirect_uri => $redirect_uri, }, ); - return $response->{code}; + return ( + $self->auth_base_uri . "authorize?request_token=$response->{code}&redirect_uri=$redirect_uri", + $response->{code}, + ); } sub finish_authentication { @@ -60,7 +85,7 @@ sub finish_authentication { my ($code) = @_; my $response = $self->_request( - $self->base_uri . 'oauth/authorize', + $self->api_base_uri . 'oauth/authorize', { consumer_key => $self->consumer_key, code => $code, @@ -96,7 +121,7 @@ sub _endpoint_request { my ($endpoint, $params) = @_; $params->{consumer_key} = $self->consumer_key; $params->{access_token} = $self->access_token; - return $self->_request($self->base_uri . $endpoint, $params); + return $self->_request($self->api_base_uri . $endpoint, $params); } sub _request { diff --git a/lib/WWW/Pocket/Script.pm b/lib/WWW/Pocket/Script.pm index dfae0fe..d529ac9 100644 --- a/lib/WWW/Pocket/Script.pm +++ b/lib/WWW/Pocket/Script.pm @@ -99,9 +99,9 @@ sub _authenticate { my $pocket = WWW::Pocket->new(consumer_key => $consumer_key); my $redirect_uri = $self->redirect_uri; - my $code = $pocket->start_authentication($redirect_uri); + my ($url, $code) = $pocket->start_authentication($redirect_uri); - print "Visit https://getpocket.com/auth/authorize?request_token=${code}&redirect_uri=${redirect_uri} and log in. When you're done, press enter to continue.\n"; + print "Visit $url and log in. When you're done, press enter to continue.\n"; ; $pocket->finish_authentication($code); -- cgit v1.2.3-54-g00ecf