Rails 5: Как получить public_profile, user_location и user_status через omniauth FB на Devise
У меня есть приложение Rails 5, использующее Facebook Omniauth на Devise, и я хочу получить информацию о public_profile пользователя, такую как first_name, last_name, age_range, link, gender, locale, verified, user_location, and user_status
в мой Users
Таблица. Прямо сейчас, он получает электронную почту только при использовании настроек Devise по умолчанию:-
# user.rb
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
user.username = auth.info.name
user.photo = auth.info.image
user.skip_confirmation!
user.save
# devise.rb
config.omniauth :facebook, '..', '..', image_size: 'large'
Я пытался редактировать эти файлы, чтобы получить подробную информацию, но это не работает:-
# devise.rb
config.omniauth :facebook, '..', '..', image_size: 'large', scope: 'email, public_profile, user_location, user_status', info_fields: 'first_name, last_name, gender, age_range, etc.'
# user.rb
user.first_name = auth.extra.raw_info.first_name
user.last_name = auth.extra.raw_info.last_name
user.age_range = auth.extra.raw_info.age_range
user.gender = auth.extra.raw_info.gender
user.address = auth.info.user_location
user.status = auth.info.user_status
Я не знаю, как правильно написать выше, чтобы заставить их работать. У меня есть разрешение на получение user_location
а также user_status