Моя цель - получить локализацию пользователя.Я использую:
gem 'koala'
gem 'omniauth-facebook'
Это моя конфигурация devise.rb
config.omniauth :facebook, ENV['FB_APP_ID'], ENV['FB_APP_SECRET'],
scope: ['email', 'user_location'],
callback_url: ENV['FB_CALLBACK_URL'],
info_fields: 'email, first_name, last_name, name, location'
В моем контроллере OmniauthCallbacksController
в методе facebook
я хочу создать пользователя и назначить локализацию дляему.
@user = User.from_omniauth(request.env['omniauth.auth'])
@oauth = Koala::Facebook::OAuth.new(ENV['FB_APP_ID'], ENV['FB_APP_SECRET'], ENV['FB_CALLBACK_URL'])
@graph = Koala::Facebook::API.new(@user.omni_auth_settings.first.access_token)
К сожалению, API Facebook по-прежнему возвращает только следующие данные:
=> {"provider"=>"facebook",
"uid"=>"1091157110258285",
"info"=>
{"email"=>"wfhllalscu_1552944302@tfbneew.net",
"name"=>"Emma Alcdgiehdgbgb Fergiesen",
"first_name"=>"Emma",
"last_name"=>"Fergiesen",
"image"=>"http://graph.facebook.com/v2.10/1091157110258285/picture"},
"credentials"=>
{"token"=>
"EAAEobjagyisBAFKrkigZA4p09xvxVOKK41LbPEHKFASCGrz0f5ZCIgwwdjBq1UPf5jvkmdzjhnytZAKVwDb4MrrzWvkC0y1LLJ8RZCpKcA4tTHty3pGxjFvoKzqb5RLYUvSP1Y5GL0A09ZClM5FsEX464sVnmKXXi6Bg4F0qbAYikFFNFQifsQ",
"expires_at"=>1558216434,
"expires"=>true},
"extra"=>
{"raw_info"=>{"email"=>"wfhllalscu_1552944302@tfbnw.net", "first_name"=>"Emma", "last_name"=>"Fergiesen", "name"=>"Emma Alcdgiehdgbgb Fergiesen", "id"=>"1091157110258285"}}}
Когда я запрашиваю напрямую /me
, я все равно не получаю день рождения и локализацию.
[6] pry(#<Users::OmniauthCallbacksController>)> @graph.get_object("me")
=> {"name"=>"Emma Alcdgiehdgbgb Fergiesen", "id"=>"1091157110258285"}
Этим пользователям предоставляются привилегии.Я понятия не имею, почему я не могу получить эти данные.Есть идеи?