rails4来自omniauth用户链接

时间:2016-07-13 18:05:54

标签: ruby-on-rails facebook omniauth

如何从omniauth.hash获取用户网址?如果用户使用社交(twitter,facebook,vk等)进行授权,我想要链接到他们的个人资料并将其作为链接放在页面上。

我在rails 4上使用omniauth-facebook(和其他人)。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: '*******************'

我将*改为实际值,此处没有用户网址。根据{{​​3}}(滚动到底部),它应该是:request.env ['auth.hash']。extra.row_info.link或.info.urls.Facebook

如何获取网址?

1 个答案:

答案 0 :(得分:1)

尝试this configuration

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

不要忘记重启应用程序。