RoR 4 Twitter Oauth認証
TwitterApplicationManagement
TwitterApplicationManagementから連携するアプリ情報を登録する。
- CreateNewAppボタンから移動
- ApplicationDetailで連携アプリ情報の登録
- Name : アプリケーション名(twitter側の認証アプリケーションの表示に該当する?)
- Description : 説明(これも同上)
- WebSite : 対象アプリケーションのURL(ここではlocalhostなので「http://0.0.0.0:3000/」としている)
- CallbackURL : 必須になっていないが、これが正しくないとエラーになる。(具体的にはdeviseのデフォルトコントローラを継承したOmniauthCallbacksController の twitterアクション呼び出しURLになる模様)
- アプリケーションの登録ができたら、「Key and Access Tokens」からConsumerKey(API Key)とConsumerSecret(API Secret)を控える
- アプリケーションのアイコンとかもここから設定可(とりあえずデフォルトのまま)
アプリケーション側の設定
Gemは以下。
2つ目は 前項で控えたKeyとSecretを記載するための環境変数の管理用gem。
「.env」というファイルに変数を記載する。
記載された変数は、アプリケーション起動時に環境変数として読み込まれる。
「.env」をgitignoreの対象とすることでgit管理下からは除外する。…という感じの目的。
gem twitterを必要としている記事もあったけど、とりあえずこれで動いた。
deviseはインストールしておくだけでおk。ただし、「Devise::OmniauthCallbacksController」は継承する必要があるので、usersディレクトリを作成の上クラスを追加する。
他のdeviseコントローラーは特に作っていない。
usersテーブルのmigrationファイルは、一般的なのと、oauth認証用カラム2つを追加する2つになる。
rails g devise User #一般的なusers migrationファイル作成
rails g migration add_columns_to_users provider uid #oauth認証用カラム追加用
この2つと、Taskテーブルのmigrationファイルを作成して「rake db:migrate」実行。