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 № 1Capito. 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)