Twitter APIで、OAuth認証したそのユーザーはいったい誰なのか?を取得
lovetestterを作ってて、ひとつ壁にぶつかった。
「OAuthで認証はうまいこといってログインできたけど、この人はいったい誰?」
という問題。Basic認証だった頃は、こっちで管理する画面にIDとパスワードを入れてもらうので、そのIDを見ればそのユーザーが誰だかわかる。でもOAuthの場合、ワケわかんない文字列(アクセストークンのことね)しか入力がないので、認証できてTLや@やDMまで取れるのに、そもそもこの人が誰なのかがわからない。ログインしたのに自分が誰なのかわかんないっておかしいよね。。。
と思ってたけど、あった。API。
これを呼ぶと、認証に成功している場合はその人のプロフィールが取れるとのこと。
Rubyだと以下のような感じ。
# whoami.rb require 'rubygems' require 'oauth' require 'twitter' oauth = Twitter::OAuth.new( '***consumer key***', '***consumer secret***' ) oauth.authorize_from_access( '***access token***', '***access token secret***' ) client = Twitter::Base.new(oauth) profile = client.verify_credentials puts profile.id puts profile.screen_name puts profile.name
$ ruby whoami.rb 5208841 nacookan なくうかん
実行するとこうなる。返されるオブジェクトにはID以外にもいろいろ入ってるから詳しくはドキュメントを参照。
あーよかったー。