TwitterOAuth / Twitter REST API

Twitter REST API – users/show または users/lookup でユーザー情報を取得する PHP サンプル

Twitter REST API - users/show または users/lookup でユーザー情報を取得する方法(PHP サンプル)

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

COMMENT

メールアドレスが公開されることはありません。