読者です 読者をやめる 読者になる 読者になる

【Ruby】【twitter】OAuth認証

できました…!!!
ブラウザアプリケーションを選択しているのに暗証番号が出るのは一応正しかったみたいです。

あの暗証番号と、irbを使って、access_tokenとaccess_token_secretがとれます。
参考サイトはこちら
http://kimagureboy505.blog63.fc2.com/blog-entry-190.html

ただ、http://dev.twitter.com/appsでもアプリケーション一覧が見れます。
Edit Detail → Application details の下の方を見ると、
Consumer keyとConsumer secretが見れます。
これは通常のtwitterの個人ページと一緒です。
そのあと、そのあと、右側にあるMy access tokenというところをクリックすると、access_tokenとaccess_token_secretが取れます。
上では、プログラムを実行してこの2つの値を取ってきていますが、手動でもできるようです。

そして本題のリダイレクト…!!!

↑のプログラムのやり方などで分かった、Consumer Keyとsecretを元に生成されたアクセス先にするときに、自分でリダイレクト先を指定しないとだめでした!!!
twitter上のリダイレクト先を記述するtextボックスは意味が無い…!!!!

参考サイト
http://tech.maid-san.org/archives/166

ここのおかげです…!!!感謝です!!

最低限必要なのは以下です。

consumer = OAuth::Consumer.new(
  CONSUMER_KEY,
  CONSUMER_SERCRET,
  :site => "http://twitter.com"
)
optprm = { :oauth_callback => "コールバック先"}
request_token = consumer.get_request_token(optprm,{})

consumer.get_request_token()…のところでアクセスがされているようです。
私は、rubyで↑を記述したあとに、

print "Content-type: text/html\r\n\r\n" 

print <<EOF;
<html>
<head>
<link rel='stylesheet' type='text/css' href='main.css'>
</head>
<body>
 <div>
   <a href = '#{request_token.authorize_url}'>てすとだよー</a>
 </div>
</body>
</html>
EOF

として、Consumer Keyとsecretによって毎回生成される、アクセス先がリンクになるようにしました。
rubyでは#{}とすることで、その変数の値を組み込むという意味になるようです。


追記(2011/02/26)

自分用メモ

access_tokenとsecretをDBに保存したあとは、consumerとaccess_tokenとsecretをOAuthに渡してインスタンスを作成することで、access_tokenが取得できます。