13note.

なんか調べたりまとめたり感想言ったりする語彙力不足及び眠気と戦うブログ

RoR 4 Twitter Oauth認証

TwitterApplicationManagement 

TwitterApplicationManagementから連携するアプリ情報を登録する。

apps.twitter.com

  1. CreateNewAppボタンから移動
  2. ApplicationDetailで連携アプリ情報の登録
    1. Name : アプリケーション名(twitter側の認証アプリケーションの表示に該当する?)
    2. Description : 説明(これも同上)
    3. WebSite : 対象アプリケーションのURL(ここではlocalhostなので「http://0.0.0.0:3000/」としている)
    4. CallbackURL : 必須になっていないが、これが正しくないとエラーになる。(具体的にはdeviseのデフォルトコントローラを継承したOmniauthCallbacksController の twitterアクション呼び出しURLになる模様)
  3. アプリケーションの登録ができたら、「Key and Access Tokens」からConsumerKey(API Key)とConsumerSecret(API Secret)を控える
  4. アプリケーションのアイコンとかもここから設定可(とりあえずデフォルトのまま)

アプリケーション側の設定

Gemは以下。

gem 'omniauth-twitter'
gem 'dotenv-rails'

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」実行。