/ / Facebook ignoriert den Geltungsbereich - Rubin auf Schienen, Facebook, Entwickeln, Omniauth, Omniauth-Facebook

Facebook ignoriert den Umfang - Ruby-on-Rails, Facebook, Devise, Omniauth, Omniauth-Facebook

Ich benutze Devise und omniauth-facebook, um sich auf meiner Website bei Facebook anzumelden. Dies ist in einer config / initializers / devise.rb definiert:

config.omniauth :facebook, app_id, app_secret, scope: "email"

Für meine Website benötige ich nur die E-Mail-Adresse. Meine FB-App verfügt jedoch standardmäßig über drei Anmeldeberechtigungen - E-Mail, öffentliches Profil und Benutzerfreunde.

Immer wenn der Login-Button angeklickt wird, die FBIm Dialog wird angezeigt, dass meine App "die folgenden Informationen erhält: Ihr öffentliches Profil, Ihre Freundesliste und E-Mail-Adresse." Ich brauche die Freundesliste nicht und möchte die Benutzer nicht von der Anmeldung abhalten.

Ich habe versucht, die URL direkt zu manipulieren, aber das hat auch nicht funktioniert:

user_omniauth_authorize_path(provider, :scope => "email")

Ein wenig tiefer gehend, fand ich, dass der Standardbereich in omniauth-facebook nur E-Mail ist, wie in omniauth-facebook / lib / omniauth / strategy / facebook.rb definiert:

DEFAULT_SCOPE = "email"

Fehlt mir hier etwas? Ignoriert oder überschreibt Facebook den Umfangsparameter? Gibt es eine Möglichkeit, die Standard-Anmeldeberechtigungen für meine Facebook-App zu ändern?

Alle Hinweise würden geschätzt werden.

Antworten:

0 für die Antwort № 1

Da sich die Facebook-API im Juli ändert, müssen Sie sie jetzt hinzufügen info_fields: "email, name"

Damit: config.omniauth :facebook, app_id, app_secret, scope: "email", info_fields: "email, name"

Sollte den Trick tun