[Twitter]Net::Twitterを使ったOAuthの実装
Net::Twitterを使ったOAuth実装を掲載します。よかったら参考にしてやってくださいな。
それにしても、perldoc Net::Twitter::Role::OAuthを見ていたら
my($self,$c) = @_;
$cってなんだ???ってハマってたら、Catalyst使ってるんですね。。。
わたしゃ使ってないんで、最初全然わからんかった。。(; ;
# cat auth.cgi
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Net::Twitter;
use CGI qw/:standard/;
use CGI::Cookie;
my $consumer_key = 'CONSUMER_KEY';
my $consumer_key_secret = 'CONSUMER_KEY_SECRET';
my $callback_url = 'http://hoge.com/callback.cgi';
my $q = CGI->new();
my $nt = Net::Twitter->new (
traits => ['API::REST', 'OAuth'],
consumer_key => $consumer_key,
consumer_secret => $consumer_key_secret,
);
my $url = $nt->get_authorization_url( callback => $callback_url );
#---callback.cgiにsecretを渡すためにファイルに書き出した(tokenはオマケ)
my $oauth_token = $nt->request_token;
my $oauth_secret = $nt->request_token_secret;
open OUT, ">/tmp/oauth.txt";
print OUT "$oauth_token&$oauth_secret\n";
close OUT;
print $q->redirect( $url );
exit;
# cat callback.cgi
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Net::Twitter;
use CGI qw/:standard/;
use CGI::Cookie;
my $consumer_key = 'CONSUMER_KEY';
my $consumer_key_secret = 'CONSUMER_KEY_SECRET';
my $q = CGI->new();
#--- パラメータでoauht_tokenも返してくれる
my $oauth_token = $q->param('oauth_token');
my $oauth_verifier = $q->param('oauth_verifier');
open IN, "
my $buf =
close IN;
chomp $buf;
my @param = split( /&/, $buf );
my $oauth_secret = $param[1];
my $nt = Net::Twitter->new (
traits => ['API::REST', 'OAuth'],
consumer_key => $consumer_key,
consumer_secret => $consumer_key_secret,
);
$nt->request_token( $oauth_token );
$nt->request_token_secret( $oauth_secret );
my( $access_token, $access_token_secret, $user_id, $screen_name )
= $nt->request_access_token( verifier => $oauth_verifier );
exit;
screen_nameかuser_idをキーにでもして、access_*を管理できそうだな。。