oauth::lite2::client::webserver簡単で嬉しい
なーと思いました。まぁもともとそんな複雑な仕組みじゃないけどfoursquareのaccess_tokenをひっぱってくるとき
こういうのを書いた。
use strict; use warnings; use OAuth::Lite2::Client::WebServer; use Plack::Request; my $client = OAuth::Lite2::Client::WebServer->new( id => "client_id", secret => "client_secret", authorize_uri => "https://ja.foursquare.com/oauth2/authorize", access_token_uri => "https://ja.foursquare.com/oauth2/access_token", ); my $redirect_uri = "redirect_uri"; my $app = sub { my $env = shift; my $req = Plack::Request->new($env); my $code = $req->query_parameters->{code}; if ( $code ) { my $access_toekn = $client->get_access_token( code => $code, redirect_uri => $redirect_uri, ); my $res = $req->new_response(200); $res->content_type('text/plain'); $res->body($access_toekn->access_token); return $res->finalize; } else { my $redirect_uri = $client->uri_to_redirect( redirect_uri => $redirect_uri ); $res->redirect($redirect_uri); } };
redirect_uriをhttp://localhost:5000とかで登録しといてplackupする