/ / Rails: Ottieni l'email dell'utente dopo Facebook Oauth (utilizzando Devise e facebook omniauth gem) - ruby-on-rails, facebook, idea, omniauth

Rails: Ottieni l'email dell'utente dopo Facebook Oauth (usando Devise e facebook omniauth gem) - ruby-on-rails, facebook, idea, omniauth

Ho problemi ad accedere all'email di un utente, first_name e last_name dopo l'iscrizione da Facebook.

Ecco come appare il mio Omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV["FACEBOOK_APP_ID"], ENV["FACEBOOK_SECRET"],
:scope => "email",
:info_fields=>"first_name, last_name, email"
end

Quando viene visualizzata la finestra di accesso di Facebook, viene visualizzatol'ambito correttamente ("questa app avrà accesso alla tua email"). Ma quando cerco nella risposta, vedo che non sto recuperando nessuno dei miei campi richiesti.

   {"provider"=>"facebook",
"uid"=>"10101161800900201",
"info"=>
{"name"=>"Jackson Cunningham",
"image"=>"http://graph.facebook.com/10101161800900201/picture"},
"credentials"=>
{"token"=>
"...",
"expires_at"=>1445243073,
"expires"=>true},
"extra"=>
{"raw_info"=>
{"name"=>"Jackson Cunningham", "id"=>"10101161800900201"}}}

risposte:

4 per risposta № 1

Capito. Devi solo assicurarti di modificare Devise.rb in aggiunta a Omniauth.rb

Devise.rb dovrebbe avere:

config.omniauth :facebook, "your_facebook_id", "your_facebook_secret", scope: "email,public_profile", info_fields: "email, first_name, last_name"

sostituendo qualsiasi info_fields specifico di cui hai bisogno (elenco di tutti disponibili Qui)