1. shinomiya33

    Posted

    shinomiya33
Changes in title
+Ruby でOAuth認証のあれこれ with Twitter
Changes in tags
+Ruby
2.1
Changes in body
Source | HTML | Preview
@@ -0,0 +1,100 @@
+環境:Windows7(64), ruby2.1
+
+
+色々サイトと見たんだが、dev.twitter.comのUIが変わったらしく、
+今作業している画面とちょっと違っていたり、項目名が変わっていてよく分からなかったのでメモ。
+
+- まず最初に
+
+https://dev.twitter.com/
+ログイン後、右上のアイコンをクリックすると
+
+・My subscriptions
+・My applications
+・Sign out
+
+の3つがあるが真ん中の
+・My applications
+をクリック。
+
+
+- アプリ登録
+
+Create New App というボタンがあるのでぽちっとな。
+それからいろんな入力項目が出てくるがここは適当(後で変更できる)。
+サイト、面倒だったから自分のtwitterのURLにしてしまったぜ。
+
+
+- アプリ登録準備
+
+登録後にアプリのリンクをクリックすると、
+・Details(activeのタブ)
+・Settings
+・API Keys
+・Permissions
+
+のタブがあるページが開く。
+
+ここで一旦
+Permissions
+のタブをクリックして
+Permissionを Read から Read and Write に変更しておく。
+
+
+- 認証開始
+
+API Keysのタブを開くをAPI keyとAPI secretに文字列があるのが見える。
+サイトみたらConsumer Keyがどうたらってあったけど、どこにもないじゃん。。。って思ってたら
+このAPI key が Consumer Keyのことなんですって。
+うーん。
+
+ここで発行するために irb でやろうとしたらNet::HTTPRetriableErrorが出てうまく行かない。HTTP ステータスコード 3xx って何をどうしたらいいのかちょっと分からず調べていたら、URLの指定先が間違っていたもよう。
+× :site => "http://twitter.com"
+○ :site=>"https://api.twitter.com"
+
+↑twitterのdevelperサイトと書いてあるブログもあったので何が正しいか分からんかった。
+とりあえずいろいろ試したらうまくいった。
+
+key発行:
+>
+require 'oauth'
+require 'oauth/consumer'
+@consumer=OAuth::Consumer.new( 'CONSUMER_KEY','CONSUMER_SECRET', {
+ :site=>"https://api.twitter.com"
+ })
+
+
+
+- PIN発行
+
+
+ここで
+>
+@request_token=@consumer.get_request_token
+@request_token.authorize_url
+
+とたたく。
+
+するとURLが出てくる。
+
+>
+[7] pry(main)> @request_token.authorize_url
+=> "https://api.twitter.com/oauth/authorize?oauth_token=hogehogehogehoge"
+
+これをブラウザに張り付けてたたくと、今作ったbotが認証を求めている、と言われるのでOKを押下するとPINが発行される。
+
+この数値をメモ。
+
+
+- access_token GET
+
+PINを下記のコードに張り付けるとaccess_token が表示される。
+これでOK。
+
+>
+@access_token = @request_token.get_access_token(:oauth_verifier => 'PINの番号')
+puts @access_token.token
+puts @access_token.secret
+
+
+