Ich habe neue Rails App erstellt und Devise und omniauth-facebook gem installiert.omniauth-facebook kann keine E-Mail Adresse erhalten
Und meine Facebook-App als Testumgebung einstellen.
Also habe ich mich über Facebook eingeloggt und meine neue Rails App angemeldet, aber request.env enthielt keine email address.info.
diese zurückgegeben request.env [ 'omniauth.auth']
{
"provider" => "facebook",
"uid" => "xxxxxxxxxxxx",
"info" => {
"name" => "xxxxxxx",
"image" => "http://graph.facebook.com/xxx/picture"
},
"credentials" => {
"token" => "tokenstring",
"expires_at" => xxxxxxxxx,
"expires" => true
},
"extra" => {
"raw_info" => {
"name" => "xxx xxxx",
"id" => "xxxxxxxxx"
}
}
}
es Racks request.env [ 'omniauth.auth'] [ 'info'] [ 'E-Mail']
Wie kann ich per E-Mail eine E-Mail-Adresse von Facebook erhalten? Bitte, bitte hilf mir.
Rails ist ver 4.2.3 Rubin ver 2.2.2p95 ist
Dies ist Gem Versionen
omniauth (1.2.2)
omniauth-facebook (2.0.1)
devise (3.5.1)
config/Initialisierungen/devise.rb
config.omniauth :facebook, 'appId', 'appSeacret', scope: 'email,public_profile'
app/Controller/omniauth_callbacks_controller.rb
def all_provider
user = User.from_omniauth(request.env['omniauth.auth'])
if user.persisted?
sign_in_and_redirect user
else
session['devise.user_attributes'] = user.attributes
redirect_to new_user_registration_url
end
end
alias_method :facebook, :all_provider
app/model/user.rb
def from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
end
end
hinzufügen bei 2015/7/11
ich denselben Code mit meiner alten Test Facebook-Anwendung erneut versucht und kann voll public_profile und E-Mail.
Sind irgendwelche Beschränkungen für neue Facebook-App hinzugefügt ?? jemand weiß?
für mich nicht funktionieren, ich weiß nicht warum, in meinem Gerät config config.omniauth: facebook, p.key, p.secret, Umfang: 'E-Mail', info_fields: 'E-Mail, Name' aber wenn versuchen zu bekommen E-Mail Benutzer omniauth [: info] [: email], das ist leer –
Gleiches Problem existiert für mich – Rubyist
Das funktioniert nicht. – Red