TwitterをMechanizeでさわる
一個だけ注意だ、WWW::Mechanizeだと動かん。WWW::Mechanize::GZipつかうんだ。
OAuthのaccess Tokenをバルクにとってくるとか、人に聞かれたら嘲笑される(用途的な意味で)系のコード書いてるんだが、どうもTwitterってGzipのヘッダー無しでGzipなContentを返してくるから注意だぜ!
(ものすごいバイナリな感じの出力がされる。出力を保存して gzip -dc < imifu して読める物がでてきたら、gzip圧縮されとる)
※以下のコードは単体では意味をなしません。BOT量産する俺みたいなクズにしか用はないと思うので、細かい解説はしない。
#!/usr/bin/env perl use utf8; use strict; use warnings; use DateTime; use WWW::Mechanize; use WWW::Mechanize::GZip; my $LOGIN_ID = 'uzulla'; my $LOGIN_PASS = 'password'; my $mc = WWW::Mechanize::GZip->new(); my $OAUTH_GW = ' ここら辺参考に>http://d.hatena.ne.jp/uzulla/20100216#p2 '; my $res = $mc->get($OAUTH_GW); $res = $mc->submit_form( form_id=>'login_form', fields => { 'session[username_or_email]' => $LOGIN_ID, 'session[password]' => $LOGIN_PASS }) or die 'login failed' ; $res = $mc->follow_link( url_regex => qr/oauth_verifier=/i ); print $res->content(); exit;
最近Twitterエラーが多すぎるので、適切にエラー処理、リトライなりを挟みましょう。