2010-05-01
■[twitter][perl][oauth]【試行錯誤中】twitterでOAuth使ってもAPIが150のままになってる(ように見える)件
twitterにOAuthでポストしているのですが、どうも残りAPI数の取得がうまくいってない。
投稿の方はちゃんとできてる(ように見える)のですが、basic認証で150回のAPIがOAuthでは350回になると言われている部分でなぜか150回と返ってくるみたいで、まだ原因が分かっていないのですが、現状のコードを書いておきます。
use strict; use warnings; use utf8; use Data::Dumper; use Digest::SHA; use IO::All; use JSON; use LWP::UserAgent; use Net::OAuth; my $account = from_json( io( 'account.json' )->all ); my $application = from_json( io( 'application.json' )->all ); my $uri = 'http://twitter.com/account/rate_limit_status.json'; my $request = Net::OAuth->request('protected resource')->new( consumer_key => $application->{consumer_key}, consumer_secret => $application->{consumer_secret}, token => $account->{access_token}, token_secret => $account->{access_token_secret}, request_url => $uri, request_method => 'GET', signature_method => 'HMAC-SHA1', timestamp => time, nonce => Digest::SHA::sha1_base64(time . $$ . rand), ); $request->sign; my $ua = LWP::UserAgent->new; my $res = $ua->get( $request->to_url ); my $content = $res->content; print Dumper from_json $content;
結果
$VAR1 = {
'reset_time_in_seconds' => 1272720722,
'hourly_limit' => 150,
'remaining_hits' => 128,
'reset_time' => 'Sat May 01 13:32:02 +0000 2010'
};
これを以前にtwitterでつぶやいていたら、@fukurouさんが検証してくれました。
twitter API の発行回数が OAuth を使うと 350回/hour になったか確認してみた - ふくろう好き技術者ブログ
実行結果は、↓こちら。 認証していないときは、IPアドレスに対してのlimit取得ができて、認証後は、OAuth ACCESS token の limt が 350 になっています。
$VAR1 = { ‘reset_time_in_seconds’ => 1269827318, ‘hourly_limit’ => 150, ‘remaining_hits’ => 146, ‘reset_time’ => ‘Mon Mar 29 01:48:38 +0000 2010′ }; $VAR1 = { ‘reset_time_in_seconds’ => 1269827656, ‘hourly_limit’ => 350, ‘remaining_hits’ => 350, ‘reset_time’ => ‘Mon Mar 29 01:54:16 +0000 2010′ };みごとに 350回/hour の確認ができました。
※ Net::Twitter は、version 3.10003 を使いました。
@fukurouさんはNet::Twitterを使っていて、私が使ったのはNet::OAuthなのでそこの所が違う部分なのですが、少なくともAPIが150のままというのは私の妄想だったようです。
- 2 http://www.twittergadget.com/gadget.asp?scrm=bWschBTTF&mid=1&rpctoken=s4s7xmpm8wvn&libs=js/core:dynamic-height:flash:google.contentmatch:google.debug:google.waitforload:locked-domain:maximize:oauthpopup:rpc:security-token:setprefs:settitle:skins:views.js:
- 1 http://d.hatena.ne.jp/bsheep
- 1 http://hootsuite.com/dashboard