2015-07-17 4 views
2

Я настраиваю поставщик Facebook следующим образом:Facebook OmniAuth Войти не возвращают все поля

provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], scope: ['email', 'public_profile'] 

Разрешения, кажется, работает нормально, в том, что диалог Facebook упоминает соответствующие необходимые разрешения, но я только получая имя и данные изображения, возвращающиеся к URL-адресу обратного вызова. omniauth.auth хэш выглядит следующим образом:

{ "provider":"facebook", "uid":<redacted> "info":{ "name":<redacted>, "image":<redacted>, "credentials":{ "token":<redacted>, "expires_at":1442319308, "expires":true }, "extra":{ "raw_info":{ "name":<redacted>, "id":<redacted> } } }

не Должен ли я видеть больше полей здесь?

ответ

2

У меня была такая же проблема. Вы, наверное, поняли это, но в случае, если вы не ... Вам просто нужно, чтобы убедиться, редактировать Devise.rb в дополнение к Omniauth.rb

Devise.rb должны иметь:

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

замена независимо от конкретного info_fields вам нужно (список всех доступных here)

+0

работает для меня, используя Authlogic, но ключ с указанием info_fields: Rails.application.config.middleware.use OmniAuth :: Builder сделать поставщика: facebook , MY_ID, MY_SECRET, область действия: 'email, public_profile', info_fields: 'email, first_name, last_name' –

Смежные вопросы