Twitter REST API (TwitterOAuth) を使うと Twitter のフォロワー一覧やフォロー中一覧を取得することができますが、これらのデータには Twitter ID(数字の羅列)はありますが @ユーザー名 などの主要なユーザー情報は含まれておりません。
そこで Twitter ID からユーザー情報詳細を取得する方法をご紹介いたします。
※参考サイトは最下部にまとめております。
目次
GET users/show
Twitter REST API – GET users/show を使用すると Twitter ID から @ユーザー名 などの主要なユーザー情報を取得することができます。
Twitter ID を “0123456789” とすると、PHP のサンプルコードはこんな感じです…
$objUser = $objTwitter->get("users/show", array("user_id"=>"0123456789"));
2つの問題点
こう書くと、Twitter ID からユーザー情報詳細を取得するのは簡単なように思えますが、実は Twitter REST API(無料アカウントの場合)には使用制限がついています。例えば この GET users/show 関数の場合には 900回 / 15分 という制限があります。
また、1回の GET users/show を使ったデータ取得には 数ミリ秒程度は(おそらく)かかります。つまり100人分の GET users/show を実行すると数秒程度はかかってしまうと思います、、
つまり GET users/show を繰り返し使うことは プログラミング的には得策ではない…ということになります。では どう解決するかというと…
GET users/lookup
Twitter REST API – GET users/lookup を使うと、一度に100人分までのユーザー情報を取得することができます。サンプルコードはこんな感じになります…
//事前に $arrUsers に ユーザーID を追加しておきます
//100人までのユーザー情報を一括取得します
$objUsers = $objTwitter->get("users/lookup", array("user_id"=>$arrUsers));
//一括取得したユーザー情報を一つずつ書き出します
foreach ($objUsers as $objUser){
echo $objUser->screen_name . "<br>";
}
※ただし、この GET users/lookup 関数がまたクセモノで、、せっかく並べておいた ユーザーID の順にデータが返ってこないようです、、そのあたりの解決は…皆さんの腕の見せどころです。
取得できるデータ
GET users/show および GET users/lookup の戻り値 User Object には、公式ドキュメントによると 2021年10月現在で以下のようなユーザーデータが取得できるようになってます。Twitter で閲覧できるデータは(おそらくすべて)取得できると思います。
- id
- id_str
- name
- screen_name
- location
- derived
- url
- description
- protected
- verified
- followers_count
- friends_count
- listed_count
- favourites_count
- statuses_count
- created_at
- profile_banner_url
- profile_image_url_https
- default_profile
- default_profile_image
- withheld_in_countries
- withheld_scope
※他に、過去にサポートされていて 現在はサポートされていないデータなどもあります。詳しくは 公式ドキュメントをご参照ください。
参考サイト
GET users/show 公式ドキュメント
https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-users-show
GET users/lookup 公式ドキュメント
https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup
User object 公式ドキュメント
https://developer.twitter.com/en/docs/twitter-api/v1/data-dictionary/object-model/user