Twitterが今年の8月にAPIについてのルールを変更した上で、
API v1.1をリリースしました。

Twitter API v1.1でのAPI利用ルールの変更について

実際にv1.0がなくなるのは来年の3月くらいだと思いますので、
まだ時間がありますが、リスクも含めて、
早めに知りたかったので、実際に触ってみました。

で、今までAPIの変更をネガティブに捉えていたのですが、
検索APIに関しては、かなり良くなっており、Twitterでつぶやいていましたが、
より多くの人に共有したいと思い、ブログにまとめたいと思います。

以下の点が大きく変わりました。

1.制限が1時間150回から15分180回に変わった
2.最大1500件取得が約8日前まですべて取得できるようになった
3.ユーザに関するデータの種類が増えた(特にフォロワー数)
4.リツイート内容が取得できるようになった

制限が1時間150回から15分180回に変わった


v1.0ではIP制限で行なっていたAPIの回数制限が
v1.1ではOAuth認証によりアクセストークン毎のAPIの回数制限に変わりました。
実質1時間720回なので4倍以上増えたことになります。

※最初v1.0の回数制限を350回と書いていましたが
検索APIはIP制限のみなので150回の間違いでした。

最大1500件取得が約8日前まですべて取得できるようになった


個人的には今回のAPIの変更で一番影響があり、そして感動した部分になります。

v1.0ではpageを指定したページングの機能しかなく、それが最大15ページとなり
一度に100件取得するため1500件までの取得が限界でした。
この問題としては「バルス」のように一度に大量にツイートがある場合、
最新の1500件しか取得できないため、ほとんど逃してしまいます。

またページングをしている間にデータが流れて、
1ページ目と2ページ目が同じ状態になったりすることもあります。

v1.1ではpage指定がなくなり代わりにmax_id指定になりました。
max_idはv1.0では結果に対して絞り込むためのもので使用方法が変わりました。
max_idの指定が8日前くらい遡り指定しても取得できるため、
「バルス」のように一度に大量にツイートがあっても取得することができます。

ユーザに関するデータの種類が増えた(特にフォロワー数)


v1.0ではユーザに関するデータが少なくユーザの属性を調べようとするには
別のAPIを叩く必要がありました。

v1.1ではユーザに関するデータがすべて取得ができます。
特に使えると思うのは「名前」「フォロワー数」「自己紹介」「URL」「場所」ですね。
例えば「場所」を使って、検索キーワードに対する地域ごとの分布図などが
できたり、「フォロワー数」を使い、影響力の判定などができると思います。
スパムアカウントも見つけやすくなるかなぁ。

リツイート内容が取得できるようになった


v1.1ではretweeted_statusでRTの内容、
および元のツイートしたユーザの情報が取得できます。

当然ながら非公式のRTは取得できないので、
公式RTがより強くなったと思われます。

問題


・search_metadataのデータがおかしい
search_metadataのmax_idとnext_url内のmax_idが
明らかに次のページではないので、自前でURLを作成した方が良いです。
多分、Twitter側のバグです。

懸念点


・抜けが出るかも
調査しきれていませんがTwitter社の方によるとスパイクするデータに関しては
抜けが生じるということなので、「バルス」などは抜けが発生すると思われます。
通常から抜けが発生している可能性もありますので追加調査をしようと思います。

・時間がかかる
実際に叩いてみるとv1.0の時よりも結果の取得に時間がかかる気がします。
max_idを指定しないときは、それほど問題ないのですが、
指定した場合に取得までに時間がかかる場合があります。
最大で15秒くらい待たされる時がありました。

・制限がかかるかも
あまりにもデータが取得できてしまうので、
もしかすると制限がかかる可能性があり、それも心配なところです。

おまけ:Rate Limitについて


v1.1からはAPI毎に回数制限が儲けられたためRate Limit APIの
仕様も変わっています。

https://api.twitter.com/1.1/application/rate_limit_status.json?resources=search
のようにresourcesで該当するAPIを指定できるようになりました。

まとめ


TwitterのAPIの変更は開発者を中心にネガティブに受け止められていますが、
少なくとも分析屋などにとっては、かなり良い方向での変更となり、
すぐにでもv1.0からv1.1にシステムを移行した方が良いように思われます。

とりあえず、私の目標としては
今年の紅白歌合戦に関する全データ取得を頑張りたいと思います。

追記


今回のAPI調査に辺り色々と教えていただき、
本日、Twitter社を辞められるというエントリーを書かれた
元Twitter社の@yusukeさんの下記の記事が
検索APIも含めて今回のAPIに関する変更がまとめられていますので、
是非、合わせて読んでいただければと思います。

結局、Twitter API 1.1で何が変わる? 5つのポイント