Estou tendo problemas para acessar o e-mail, first_name e last_name de um usuário após a inscrição no Facebook.
Aqui está o que meu Omniauth.rb se parece com:
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 a janela de login do Facebook aparece, mostrao escopo corretamente ("este aplicativo terá acesso ao seu e-mail"). Mas quando eu me intrometo na resposta, vejo que não estou recebendo nenhum dos meus campos solicitados de volta.
{"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"}}}
Respostas:
4 para resposta № 1Descobri isso. Você só precisa certificar-se de editar o Devise.rb além do Omniauth.rb
Devise.rb deve ter:
config.omniauth :facebook, "your_facebook_id", "your_facebook_secret", scope: "email,public_profile", info_fields: "email, first_name, last_name"
substituindo qualquer info_fields específico que você precisa (lista de todos os disponíveis Aqui)