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以外にもいろいろ入ってるから詳しくはドキュメントを参照。

あーよかったー。