こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はCData Excel Add-in Twitter を使ってフォロワー情報を取得するためのTipsをお届けします。
CData Twitter Excel Add-in とは?
CData Twitter Excel Add-in では、Excel 上でTwitterのツイートデータやフォロー・フォロワーのデータを取得したり、ツイートやフォローをすることができる製品です。
その中でも今回は特定のユーザーのフォロワー取得に絞って紹介したいと思います。
ログインユーザーのフォロワーを取得する
まずは自分自身のフォロワーの情報を取得してみましょう。
Twitter Excel Add-in をインストール後、Excelに「CData」タブが追加されます。
この「CData」タブから「データの取得」→「取得元:Twitter」をクリックします。
最初に接続設定を行う必要があるので、以下の「接続テスト」をクリックしましょう。
クリック後、ブラウザが立ち上がり「連携アプリ」のアクセス許可画面が出てくるので、内容を確認の上「連携アプリを認証」をクリックします。
ちなみに、CData Excel Add-in Twitter は様々な機能をExcelから操作できるようにする製品のため、求める権限が多くなっています。
アクセスが完了したら、取得対象のテーブルを決定します。
フォロワー情報は「Followers」というビューを使うことで取得できます。
「Followers」ビューを選択したら、続いて細かな取得条件を指定します。
ちなみに、デフォルトではフォロワー数の取得件数が最大100件までに制限されているので、以下の「最大行数」からチェックを外しておくと良いでしょう。
あとはクエリを実行することで、先程認証したユーザーのフォロワー一覧を取得できます。
フォロワーを取得する上での注意点
さて、まず簡単にフォロワーを取得してみましたが、いくつかこのFollowersビューにはいくつか注意点があります。
1つ目はユーザーの詳細情報の取得範囲です。デフォルトでは100件以降のフォロワーの詳細情報は取得されません。これはTwitterのAPI Limitを考慮して、このようなデザインになっています。
2つ目は取得対象のフォロワーが、前述の通りログインユーザーであるという点です。
しかしながら、各種設定でこれらの制限を回避して、100件以上ユーザーの詳細情報を取得したり、特定ユーザーのフォロワーを取得することができます。
ユーザーの詳細情報を取得する件数を多くする
まず、ユーザーの詳細情報の取得件数を拡大してみましょう。
この設定はFollowersビューに含まれている疑似カラム「MaxUserLookup」というカラムに対して、数値の条件指定をすることで取得範囲を拡張できます。
SQLベースで例えると以下のようなイメージです。これにより詳細情報を取得できるユーザーの件数を1000件にできます。
SELECT * FROM Followers WHERE MaxUserLookup = 1000;
このカラムをExcel Add-in で利用する場合、以下のプロパティを接続設定の「Other」の項目に指定することがおすすめです。デフォルトでもSQL文で指定できますが、この値を設定しておくことで、疑似カラムが一覧に表示されるようになります。
「PseudoColumns="*=*"」
設定を追加後、再度「クエリの編集」画面に移動すると、以下のように「MaxUserLookup」が表示されました。
このカラムに対してフィルタ条件で「次の値に等しい:1000」といった形で指定することで、ユーザーの詳細データを1000件文取得できます。
これで以下のように100件以降まで詳細データが取得できました。
もちろん、1000件以降は詳細が無い状態になるので、取得したいフォロワー数の情報に併せて調整してみてください。
IDだけ取得したい場合
ちなみにサクッとIDだけ取得したい、といった場合には「LookUpUsers」というカラムに対して「False」を指定することで実現できます。
以下のように取得できました。
IDだけ取得する場合は、APIのリクエスト・レスポンスが軽量になるので、早く結果が参照できます。
件数の確認だけしたいといった場合などに効果的です。
特定のユーザーのフォロワーを取得する
特定のユーザーのフォロワーを取得したい場合には「Followers_Of_Screen_Name」もしくは「Followers_Of_User_Id 」を条件指定します。
例えば、以下のCDataJapanのツイッターアカウントのフォロワーを取得したい場合は
以下のように条件指定を行います。
これでクエリを実行すると、CDataJapanのフォロワーだけ取得できます。
ちなみにこの条件は「MaxUserLookup」や「LookUpUsers」のカラムの条件と併用することも可能です。
API Limit について
最後にTwitter APIを利用する上で避けては通れない、API Limitについて解説しておきます。
このフォロワーの取得には2種類のAPIが利用されています。
フォロワーのIDの取得には「GET followers/ids」
フォロワーの詳細情報取得には「GET users/lookup」を利用しています。
まず「GET followers/ids」でフォロワーのIDを特定して、「GET users/lookup」で詳細情報を逐次取得しているというイメージですね。
「GET followers/ids」は1回のリクエストで最大「5000件」、15分の間で15回リクエストができます。
対して、「GET users/lookup」は1回あたり100件のユーザー情報を取得でき、15分あたり900回までリクエストができます。
この制限の範囲内でそれぞれユーザー情報が取得できます。
ちなみに、Excel Add-in Twitter はデフォルトだと取得できる限りのデータをAPI Limitを気にせず取得しようとします。
もし、API Limitに達した場合はエラーが発生しますが、API Limitの回復まで自動的に待機させたい、といった場合には以下の「MaxRateLimitDelay」というプロパティで待機時間を調整できます。
取得したいデータ量に併せてチューニングしてみてください。