1
1

More than 5 years have passed since last update.

Net::Twitter::LiteのsearchをAPI1.1に対応させる

Posted at

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,
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1