Rails
Twitter

railsのdeviseを使ってtwitterのOmniAuthを実装する手順

twitterログイン機能が欲しかったので、deviseを使用して実装した時の手順。
以下が構築した環境状況

前提条件・バージョンなど

  • railsのスタート画面が表示されている状態
  • Railsのバージョン 5.1.4

gemを追加

以下のgemを追加。

Gemfile
gem 'devise'
gem 'omniauth-twitter'
bundle install

controllerを作成

ログイン用のコントローラーを追加して、routeを設定。

rails g controller home index
config/routes.rb
Rails.application.routes.draw do
  root "home#index"
  get "home/index"
end

deviseをインストール

deviseの設定をして、ログイン機能を作成。

rails g devise:install
config/initializers/devise.rb
  # ==> OmniAuth
  # Add a new OmniAuth provider. Check the wiki for more information on setting
  # up on your models and hooks.
  # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
  #250行目あたりに以下の内容を記述
 config.omniauth :twitter, ENV['TWITTER_CONSUMER_KEY'], ENV['TWITTER_CONSUMER_SECRET'], display: 'popup'

Twitterの認証用

https://apps.twitter.com/でCreate New Appの登録をする。
「Callback URL」の設定は忘れずに(とりあえずhttp://localhost:3000でもなんでも設定しないとエラーがでるっぽい)