如何从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
如何获取网址?
答案 0 :(得分:1)
config.omniauth :facebook, 'APP_ID', 'APP_SECRET', info_fields: 'name,email,link'
不要忘记重启应用程序。