まず、Twitterのアプリ登録ページで各種設定を行い、Consumer KeyとConsumer Secretを取得します。とりあえず後でも変更は可能なので、アプリ名とか決まって無くても、間に合わせで設定しても大丈夫。
ただ、Application Typeの設定によって、承認済リクエストトークンとヴェリファイアの取得方法が変わって来るので、ココはきちんと設定しておきましょう。今回の例はブラウザベースで話を進めます。
で、コンシューマキーとシークレットを取得したら、その各値を使ってRequestTokenを取得します。
# ■リクエストトークンの取得 # このソースは簡略化してますので、自分のソースに合った改変は必須かと思います。 use LWP::UserAgent; use Net::OAuth; $Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A; my $request_token_url = 'http://twitter.com/oauth/request_token'; my $request_method = 'GET'; my $request = Net::OAuth->request("request token")->new( consumer_key => 'Twitterから取得したキー', consumer_secret => 'Twitterから取得しシークレット', request_url => $request_token_url, request_method => $request_method, signature_method => 'HMAC-SHA1', timestamp => time, nonce => 'ランダム文字列', #要毎回変更 callback => 'http://yoursite', #アプリ登録時のコールバックアドレス ); # nonceとtimestampについてはhttp://oauth.net/core/1.0/#nonce を参照 $request->sign; my $ua = LWP::UserAgent->new; my $http_hdr = HTTP::Headers->new('Authorization' => $request->to_authorization_header); my $http_req = HTTP::Request->new($request_method, $request_token_url, $http_hdr); my $http_res = $ua->request($http_req); my $RequestTokenStr = $http_res->content;
以上w
$RequestTokenStrには
「oauth_token=[未承認RequestToken値]&oauth_token_secret=[ReuestTokenSecret値]&oauth_callback_confirmed=true」な感じで値が返りますので、Net::OAuth->responseや、その他お好みの方法で各値に分解します。
2010/02/06追記: Syntax-Hilighter入れてみたw