Net::Twitter::Role::OAuth のサンプルコードが少し違うかも
http://search.cpan.org/~mmims/Net-Twitter-3.11004/lib/Net/Twitter/Role/OAuth.pm 中にWebアプリケーションの例がありますが、2010年2月13日の時点ではこの通り実行してもtwitter_auth_callback の request_access_tokenで失敗します。
成功させるには、callbackに渡された oauth_token を request_access_token の引数に追加する必要があるようです。
sub oauth_callback : Local { my ( $self, $c ) = @_; my %cookie = $c->request->cookies->{oauth}->value; my $token = $c->req->params->{oauth_token}; # oauth_tokenを取得 my $verifier = $c->req->params->{oauth_verifier}; my $nt = Net::Twitter->new(traits => [qw/API::REST OAuth/], consumer_key => 'CONSUMER_KEY', consumer_secret => 'CONSUMER_SECRET'); $nt->request_token($cookie{token}); $nt->request_token_secret($cookie{token_secret}); my ($access_token, $access_token_secret, $twitter_id, $screen_name) = $nt->request_access_token(token => $token, verifier => $verifier); # tokenを追加 }
OAuth 自体のドキュメントは読んでないので、「正しい」のかどうか分からないですが……。