ブログトップ 記事一覧 ログイン 無料ブログ開設

平凡なエンジニアの独り言 このページをアンテナに追加 RSSフィード Twitter

2010-06-07

[]twitterOAuth認証を実装するときに、AccessTokenからscreen_nameを取得する方法

RmakeRailsで実装)でtwitterOAuth認証を実装していたときに、screen_nameの取得方法がわからなくてあたふたしたので自分用にメモっておきます。gemoauthtwitterを使いました。具体的には以下の一行が書きたかっただけなのですが。。。

screen_name = access_token.params[:screen_name]

environment.rbに以下のように書いて、gemoauthtwitterを設定します。

config.gem 'oauth'
config.gem 'twitter'

次に、RequestTokenを取得してから、twitterの認証ページを飛ばすためのアクションを書きます。

consumer = OAuth::Consumer.new(CONSUMER_KEY, SECRET_KEY,
  {:site=>"http://twitter.com"})
request_token = consumer.get_request_token(:oauth_callback => "戻り先のURL")
session[:request_token] = request_token.token
session[:request_token_secret] = request_token.secret
redirect_to request_token.authorize_url

最後に、twitterの認証ページからの遷移先アクションを記述します。

consumer = OAuth::Consumer.new(CONSUMER_KEY, SECRET_KEY,
  {:site=>"http://twitter.com"})

request_token = OAuth::RequestToken.new(
  consumer, session[:request_token], session[:request_token_secret])

access_token = request_token.get_access_token(
  :oauth_token => params[:oauth_token],
  :oauth_verifier => params[:oauth_verifier]
)

_screen_name = access_token.params[:screen_name] # <<- これが書きたかった。。。

oauth = Twitter::OAuth.new(CONSUMER_KEY, SECRET_KEY)
oauth.authorize_from_access(access_token.token, access_token.secret)
client = Twitter::Base.new(oauth)

screen_nameはAccessToken(Twitter APIへのアクセス用のトークン)のレスポンスに含まれているようです。OAuthでは、AccessTokenに独自のパラメータを含めることができるんですかね?

ちゃんと仕様を読まないとダメかな〜。。。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/akasata/20100607/1275899022
リンク元