読者です 読者をやめる 読者になる 読者になる

OAuth::Lite::Consumer で access_token 取得時に token とか以外のパラメータを取得

perl

access_token を取ってくるだけなら get_access_token を使えば良い。

my $access_token = $consumer->get_access_token(
    token    => $request_token,
    verifier => $verifier,
);

$access_token は OAuth::Lite::Token オブジェクトになっていて oauth_token, oauth_token_secret, oauth_callback_confirmed 以外のパラメータは捨てられてしまう。

Twitter の OAuth とかだと access_token 取得時に screen_name とかもパラメータに含まれるのでそっちも取りたい(cf. Authenticating Requests with OAuth | dev.twitter.com)。そんな場合は obtain_access_token を使う。

my $res = $consumer->obtain_access_token(
    token  => $request_token,
    params => +{
        oauth_verifier => $verifier,
    },
);
my $access_token = $res->token; # OAuth::Lite::Token
my $screen_name  = $res->param('screen_name');

$res は OAuth::Lite::Response オブジェクトになっていて、token で OAuth::Lite::Token が、param で他のパラメータが取れる。