ハブ君の寝言

日記のような何か

自分用OAuthメモ

OAuth認証がめんどくさい
めっちゃめんどくさい
やってみれば簡単だけどめんどくさい
一回で済むけどめんどくさい

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Net::Twitter;
use Win32::OLE;


my $consumer_key = 'xxxxxxxxxxxxxxxxxx';
my $consumer_key_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

my $nt = Net::Twitter->new(
  traits          => ['API::REST', 'OAuth'],
  consumer_key    => $consumer_key,
  consumer_secret => $consumer_key_secret,
);
print 'access this url by bot account : '.$nt->get_authorization_url."\n";
#URLをコピペとかだるいのでIEに投げてみる
my $url = $nt->get_authorization_url;

 my $ie = Win32::OLE->GetActiveObject('InternetExplorer.Application') ||
    Win32::OLE->new('InternetExplorer.Application') ||
    die "InternetExplorer: ".Win32::OLE->LastError;
    # Visibleに(見えるように)する。
    $ie->{Visible} = 1;
    # リクエストを投げてみる。
    $ie->Navigate($url);
    # 通信中は次のステップに進むとエラーになるので下記のループで待ってやる
    while($ie->Busy){
        sleep 1;
    }


print 'input verifier PIN : ';
my $verifier = <STDIN>;
chomp $verifier;

my $token = $nt->request_token;
my $token_secret = $nt->request_token_secret;

$nt->request_token($token);
$nt->request_token_secret($token_secret);

my($at, $ats) = $nt->request_access_token(verifier => $verifier);

print "Access token : ".$at."\n";
print "Access token secret : ".$ats."\n";

参考とかいいながらコピペですが
参考URL:
"Net::Twitter::Role::OAuth のサンプルコードが少し違うかも"
http://d.hatena.ne.jp/jgoamakf/20100217/1266397063
"Perl-IEを操作する"
http://park.geocities.jp/gdfsm000/perl/perl23.html