この回答はGPT-4による自動生成回答です
エラーメッセージを見る限り、OmniAuthのリクエストフェーズが開始されているようですが、その後の処理がうまくいっていない可能性があります。
まず、omniauth-spotify
gemの設定が正しく行われているか確認してみてください。config/initializers/devise.rb
の設定が正しいかどうかを見直してみてください。
ruby
1config.omniauth :spotify, ENV['SPOTIFY_CLIENT_ID'], ENV['SPOTIFY_SECRET_ID'],2 scope: 'playlist-read-private user-read-private user-read-email'
上記の設定で、SPOTIFY_CLIENT_ID
とSPOTIFY_SECRET_ID
は環境変数から取得しています。これらの値が正しく設定されているか確認してみてください。dotenv-rails
gemを使用しているようなので、.env
ファイルにこれらの値が正しく設定されているか確認してみてください。
また、Users::OmniauthCallbacksController
のspotify
メソッド内で、User.find_for_Spotify(request.env['omniauth.auth'])
というメソッドを呼び出していますが、このメソッドがUser
モデル内に定義されているか確認してみてください。
ruby
1class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController2 def spotify3 @user = User.find_for_Spotify(request.env['omniauth.auth'])4 5 if @user.persisted?6 #flash[:notice] = I18n.t 'devise.omniauth_callbacks.success', kind: 'Spotify'7 sign_in_and_redirect root_path 8 else9 session['devise.google_data'] = request.env['omniauth.auth']10 redirect_to root_path 11 end12 end13end
また、エラーメッセージが表示されていないため、エラーが発生している具体的な箇所が特定できません。ログを詳しく見るために、omniauth
のログレベルをデバッグに設定してみてください。config/initializers/omniauth.rb
に以下の設定を追加してみてください。
ruby
1OmniAuth.config.logger = Rails.logger
これにより、omniauth
の詳細なログが出力され、エラーの原因を特定しやすくなるかもしれません。
0 コメント