railsでオリジナルアプリを製作しており、facebook認証機能を実装しております。
githubやqiitaで調べて実装し、いざ[sign in with facebook]のリンクを押すと、
「The parameter app_id is required」のエラーが出ます。
パラメーターの中にapp_idが含まれていないことはわかるのですが、
どこを直していいかがわかりません。。どなたか教えていただけないでしょうか・・
以下、関連コードです。
ターミナルでの環境変数の指定はしてあります。
Dotenvで環境変数の設定をしてもダメでした。。
ruby
1User.rb 2 3class User < ApplicationRecord 4. 5. 6 7devise :database_authenticatable, :registerable, 8 :recoverable, :rememberable, :validatable, :omniauthable, omniauth_providers: [:facebook] 9 10. 11. 12 13 def self.find_for_oauth(auth) 14 user = User.where(uid: auth.uid, provider: auth.provider).first 15 16 unless user 17 user = User.create( 18 uid: auth.uid, 19 provider: auth.provider, 20 password: Devise.friendly_token[0, 20] 21 ) 22 end 23 24 user 25 end
ruby
1devise.rb 2 3require 'omniauth-facebook' 4config.omniauth :facebook,ENV['app_id'],ENV['secret']
ruby
1route.rb 2 3devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }
ruby
1app/controllers/users/omniauth_callbacks_controller.rb 2 3class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController 4 def facebook 5 callback_from :facebook 6 end 7 8 private 9 10 def callback_from(provider) 11 provider = provider.to_s 12 13 @user = User.find_for_oauth(request.env['omniauth.auth']) 14 15 if @user.persisted? 16 flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: provider.capitalize) 17 sign_in_and_redirect @user, event: :authentication 18 else 19 session["devise.#{provider}_data"] = request.env['omniauth.auth'] 20 redirect_to signup_url 21 end 22 end 23end 24
申し訳ございませんが、ご回答よろしくお願い申し上げます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 01:53