CData Software Blog

クラウド連携のCData Software の技術ブログです。

Twitter アカウントのフォロワーを Excel で取得:CData Twitter Excel Add-in

f:id:sugimomoto:20210804100454p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回はCData Excel Add-in Twitter を使ってフォロワー情報を取得するためのTipsをお届けします。

CData Twitter Excel Add-in とは?

CData Twitter Excel Add-in では、Excel 上でTwitterのツイートデータやフォロー・フォロワーのデータを取得したり、ツイートやフォローをすることができる製品です。

www.cdata.com

f:id:sugimomoto:20210804093018p:plain

その中でも今回は特定のユーザーのフォロワー取得に絞って紹介したいと思います。

ログインユーザーのフォロワーを取得する

まずは自分自身のフォロワーの情報を取得してみましょう。

Twitter Excel Add-in をインストール後、Excelに「CData」タブが追加されます。

この「CData」タブから「データの取得」→「取得元:Twitter」をクリックします。

f:id:sugimomoto:20210804093027p:plain

最初に接続設定を行う必要があるので、以下の「接続テスト」をクリックしましょう。

f:id:sugimomoto:20210804093034p:plain

クリック後、ブラウザが立ち上がり「連携アプリ」のアクセス許可画面が出てくるので、内容を確認の上「連携アプリを認証」をクリックします。

ちなみに、CData Excel Add-in Twitter は様々な機能をExcelから操作できるようにする製品のため、求める権限が多くなっています。

f:id:sugimomoto:20210804093040p:plain

アクセスが完了したら、取得対象のテーブルを決定します。

フォロワー情報は「Followers」というビューを使うことで取得できます。

f:id:sugimomoto:20210804093047p:plain

「Followers」ビューを選択したら、続いて細かな取得条件を指定します。

ちなみに、デフォルトではフォロワー数の取得件数が最大100件までに制限されているので、以下の「最大行数」からチェックを外しておくと良いでしょう。

f:id:sugimomoto:20210804093053p:plain

あとはクエリを実行することで、先程認証したユーザーのフォロワー一覧を取得できます。

f:id:sugimomoto:20210804093101p:plain

フォロワーを取得する上での注意点

さて、まず簡単にフォロワーを取得してみましたが、いくつかこのFollowersビューにはいくつか注意点があります。

1つ目はユーザーの詳細情報の取得範囲です。デフォルトでは100件以降のフォロワーの詳細情報は取得されません。これはTwitterAPI Limitを考慮して、このようなデザインになっています。

f:id:sugimomoto:20210804093108p:plain

2つ目は取得対象のフォロワーが、前述の通りログインユーザーであるという点です。

f:id:sugimomoto:20210804093116p:plain

しかしながら、各種設定でこれらの制限を回避して、100件以上ユーザーの詳細情報を取得したり、特定ユーザーのフォロワーを取得することができます。

ユーザーの詳細情報を取得する件数を多くする

まず、ユーザーの詳細情報の取得件数を拡大してみましょう。

この設定はFollowersビューに含まれている疑似カラム「MaxUserLookup」というカラムに対して、数値の条件指定をすることで取得範囲を拡張できます。

cdn.cdata.com

f:id:sugimomoto:20210804093122p:plain

SQLベースで例えると以下のようなイメージです。これにより詳細情報を取得できるユーザーの件数を1000件にできます。

SELECT * FROM Followers WHERE MaxUserLookup = 1000;

このカラムをExcel Add-in で利用する場合、以下のプロパティを接続設定の「Other」の項目に指定することがおすすめです。デフォルトでもSQL文で指定できますが、この値を設定しておくことで、疑似カラムが一覧に表示されるようになります。

「PseudoColumns="*=*"」

f:id:sugimomoto:20210804093130p:plain

設定を追加後、再度「クエリの編集」画面に移動すると、以下のように「MaxUserLookup」が表示されました。

このカラムに対してフィルタ条件で「次の値に等しい:1000」といった形で指定することで、ユーザーの詳細データを1000件文取得できます。

f:id:sugimomoto:20210804093136p:plain

これで以下のように100件以降まで詳細データが取得できました。

もちろん、1000件以降は詳細が無い状態になるので、取得したいフォロワー数の情報に併せて調整してみてください。

f:id:sugimomoto:20210804093142p:plain

IDだけ取得したい場合

ちなみにサクッとIDだけ取得したい、といった場合には「LookUpUsers」というカラムに対して「False」を指定することで実現できます。

f:id:sugimomoto:20210804093150p:plain

以下のように取得できました。

f:id:sugimomoto:20210804093155p:plain

IDだけ取得する場合は、APIのリクエスト・レスポンスが軽量になるので、早く結果が参照できます。

件数の確認だけしたいといった場合などに効果的です。

特定のユーザーのフォロワーを取得する

特定のユーザーのフォロワーを取得したい場合には「Followers_Of_Screen_Name」もしくは「Followers_Of_User_Id 」を条件指定します。

例えば、以下のCDataJapanのツイッターアカウントのフォロワーを取得したい場合は

twitter.com

以下のように条件指定を行います。

f:id:sugimomoto:20210804093202p:plain

これでクエリを実行すると、CDataJapanのフォロワーだけ取得できます。

f:id:sugimomoto:20210804093209p:plain

ちなみにこの条件は「MaxUserLookup」や「LookUpUsers」のカラムの条件と併用することも可能です。

API Limit について

最後にTwitter APIを利用する上で避けては通れない、API Limitについて解説しておきます。

このフォロワーの取得には2種類のAPIが利用されています。

フォロワーのIDの取得には「GET followers/ids」

developer.twitter.com

フォロワーの詳細情報取得には「GET users/lookup」を利用しています。

developer.twitter.com

まず「GET followers/ids」でフォロワーのIDを特定して、「GET users/lookup」で詳細情報を逐次取得しているというイメージですね。

「GET followers/ids」は1回のリクエストで最大「5000件」、15分の間で15回リクエストができます。

f:id:sugimomoto:20210804093223p:plain

対して、「GET users/lookup」は1回あたり100件のユーザー情報を取得でき、15分あたり900回までリクエストができます。

f:id:sugimomoto:20210804093230p:plain

この制限の範囲内でそれぞれユーザー情報が取得できます。

ちなみに、Excel Add-in Twitter はデフォルトだと取得できる限りのデータをAPI Limitを気にせず取得しようとします。

もし、API Limitに達した場合はエラーが発生しますが、API Limitの回復まで自動的に待機させたい、といった場合には以下の「MaxRateLimitDelay」というプロパティで待機時間を調整できます。

cdn.cdata.com

取得したいデータ量に併せてチューニングしてみてください。