Help us understand the problem. What is going on with this article?

Ruby でOAuth認証のあれこれ with Twitter

More than 5 years have passed since last update.

環境: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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away