2016-07-13 8 views
0

Как получить URL пользователя от omniauth.hash? Если пользователь разрешает использовать социальные (твиттер, facebook, vk и т. Д.), Я хочу связать их профиль и поместить его на страницу в качестве ссылки.rails4 получить от omniauth ссылку пользователя

Я использую OmniAuth-фейсбук (и других) на рельсах 4. Моя конфигурация в initializers/devise.rb проста:

config.omniauth :vkontakte, 'APP_ID', 'APP_SECRET' 
    config.omniauth :facebook, 'APP_ID', 'APP_SECRET' 
    config.omniauth :twitter, 'APP_ID', 'APP_SECRET' 

С помощью этой конфигурации у меня очень плохой auth.hash на обратный вызов, в YML это выглядит так:

provider: facebook 
uid: '***************' 
info: !ruby/hash:OmniAuth::AuthHash::InfoHash 
    email: **************** 
    name: **************** 
    image: ************************ 
credentials: !ruby/hash:OmniAuth::AuthHash 
    token: **************** 
    expires_at: ****** 
    expires: ***** 
extra: !ruby/hash:OmniAuth::AuthHash 
    raw_info: !ruby/hash:OmniAuth::AuthHash 
    name: **************** 
    email: ****************** 
    id: '*******************' 

Я поставил * вместо реальных значений, здесь нет пользовательского URL. Согласно https://github.com/mkdynamic/omniauth-facebook (прокрутите вниз), это должно быть: request.env ['auth.hash']. Extra.row_info.link или .info.urls.Facebook

Как получить адрес?

ответ

1

Попробуйте this configuration:

config.omniauth :facebook, 'APP_ID', 'APP_SECRET', info_fields: 'name,email,link' 

Не забудьте перезапустить приложение.