Twitter API1.1の対応を行っています。調べてみるとNet::Twitter::Liteでapiurlを1.1にすればOKみたな感じだったのですが、私が主に使っているのは検索APIで、本当にそれだけでいいのか?ってなり、モジュールを読んでみました。
すると、apiurlと別にsearchapiurlというのがあり、ただ1.1にするだけじゃだめそうです (;´Д`)
# in Net::Twitter::Lite.pm
23 apiurl => 'http://api.twitter.com/1',
24 searchapiurl => 'http://search.twitter.com',
Net::Twitter::LiteはNet::Twitterと比べて非常に読みやすい。一つのファイルに全て書かれていて、変数を検索しやすいです。んで、変更すべき箇所をみつけて下記のように変更しました。
1892c1890
< path => 'search/tweets',
---
> path => 'search',
1898c1896
< authenticate => 1,
---
> authenticate => 0,
軽くスクリプトを書いて
my $nt = Net::Twitter::Lite->new(
consumer_key => ‘HI’,
consumer_secret => ‘MI’
apiurl => 'https://api.twitter.com/1.1',
searchapiurl => 'https://api.twitter.com/1.1',
legacy_lists_api => 0,
);
$nt->access_token(‘TSU’);
$nt->access_token_secret(‘☆’);
my $res = $nt->search({ q => "天気", rpp=> 100, page => 10, lang => 'ja'});
newして動かしてみると, 下記のエラーで死にました^^;;
400: Bad Request
TwitterAPI1.1の仕様書を読んでみると
pageはなくなっているし、rppはcountになってます。なんで、
my $res = $nt->search({ q => "天気", count => 100, lang => 'ja'});
こうしたら動きました :D
まとめ
変更点は3行です。
$ diff Lite.pm Lite.pm.org
1890c1890
< path => 'search/tweets',
---
> path => 'search',
1892c1892
< params => [ qw/q callback lang locale count max_id include_entities since_id until geocode show_user result_type/ ],
---
> params => [ qw/q callback lang locale rpp page since_id until geocode show_user result_type/ ],
1896c1896
< authenticate => 1,
---
> authenticate => 0,