twitterのscreen_nameからidとか色んな情報を取得する

3b19eb0c-s

2013/7/5 追記:この投稿で紹介しているAPIはもう使えません~
今はv1.1に移行してるので、こっちの記事を参考にしてください~

たまたま、100人以上の人をフォローしなくてはならないバッチ処理を書いていたのですが、twitterクラスのfollowメソッドはユーザIDが必要でした。

ただ、twitterのID(数値だけのやつ)を一個一個調べていくわけにもいかないので、(なんかそーゆーサービスが色々ありましたが)うまい方法を模索してたのでした。

今日のお題:screen_nameからIDを取得する簡単な方法はないか?

ありました。 余裕で。

というか、結論から先に言うとこのURLを叩くだけです。

https://api.twitter.com/1/users/lookup.json?screen_name=hogehoge

screen_name= のパラメータのあとに好きなだけ取得したい人のscreen_nameをカンマ(,)区切りでつなげるだけで、idとかの情報をJSONで返してくれます。
超簡単ですね。

なんか、最初はtwitterクラス使ってー インスタンスつくってー はて、どんなメソッドか?
とか考えていたのですが、これよくよく考えたらOAuth認証いらないヤツでした。

なのでwget一発で済むっていうーー(´・∀・`)ナンダヨー
つーわけでこんな感じでファイル保存するといいですね。

wget -O user_data.json "https://api.twitter.com/1/users/lookup.json?screen_name=user1,user2,user3.....

実際、一瞬で100個くらいscreen_nameをつなげて取得できました。
なお、普通の人は絶対やりませんが(笑) たとえばloopでscreen_nameを変更して100回まわそうとすると”一瞬でAPIの接続上限超えて弾かれますのでご注意を”

、、、自分は最初うっかちやっちまいやしたヽ(=´ω`=;;;)ノ
最高何ユーザくらいまとめて叩けるんでしょうね。 ⇒developersいってDocument見ろよw

なお、取得できるJSONのサンプルはこんな感じですー ↓
実際にはこーゆー順番じゃないけど、分かりやすくしてます。まぁ、ご参考までに。
※statusって最新のtweetの情報なのかしら。。

[
{
   "name":"NAME",
   "screen_name":"SCREEN_NAME",
   "lang":"ja",
   "url":"http:\/\/hoge.com",
   "profile_background_color":"E69AE6",
   "verified":true,
   "profile_background_image_url_https":"https:\/\/hogehoge",
   "profile_background_image_url":"http:\/\/hogehoge",
   "profile_image_url_https":"https:\/\/hogehoge",
   "profile_image_url":"http:\/\/hogehoge",
   "id":XXXXXXX,
   "id_str":"XXXXXXX",
   "location":"LOCATION",
   "status":{
      "in_reply_to_user_id_str":null,
      "retweeted":false,
      "created_at":"Sat Jun 08 00:00:00 +0000 2013",
      "geo":null,
      "in_reply_to_status_id":null,
      "source":"SOURCE",
      "in_reply_to_screen_name":null,
      "contributors":null,
      "place":null,
      "truncated":false,
      "id":XXXXXXXXXXXX,
      "id_str":"XXXXXXXXXXXX",
      "favorited":false,
      "coordinates":null,
      "text":"TWEET_TEXT",
      "possibly_sensitive":true,
      "in_reply_to_status_id_str":null,
      "in_reply_to_user_id":null,
      "retweet_count":2
   },
   "default_profile":false,
   "geo_enabled":false,
   "profile_link_color":"B30089",
   "friends_count":3000,
   "notifications":false,
   "following":false,
   "listed_count":1,
   "followers_count":1000,
   "utc_offset":XXXX,
   "profile_use_background_image":true,
   "profile_text_color":"333333",
   "protected":false,
   "statuses_count":XXXX,
   "description":"DESCRIPTION",
   "profile_sidebar_border_color":"FFFFFF",
   "contributors_enabled":false,
   "created_at":"Fri Jul 03 00:00:00 +0000 2010",
   "default_profile_image":false,
   "profile_background_tile":true,
   "favourites_count":1,
   "profile_sidebar_fill_color":"DDFFCC",
   "is_translator":false,
   "time_zone":"Tokyo",
   "follow_request_sent":false
}]

id はstr型までちゃんと用意されてるんですね。 お使いのJSONパーサーで好きな情報だけとりましょう~

2013-06-09 | Posted in twitter APINo Comments » 


関連記事

Comment





Comment



*