Да, вы можете получить картину, хотя я думаю, что это зависит от того, какие версии вы используете.
я использую
rvm current ruby-1.9.3-p194
> gem list
oauth (0.4.6)
oauth2 (0.8.0)
omniauth (1.1.0, 1.0.3)
omniauth-facebook (1.4.1, 1.4.0)
omniauth-google (1.0.1)
omniauth-google-oauth2 (0.1.13)
omniauth-oauth (1.0.1)
omniauth-oauth2 (1.1.0, 1.0.3)
omniauth-twitter (0.0.12)
Я прибыл сюда по другой причине, которая была связана сДело в том, что соглашение об именах для доступа к свойствам профиля отличалось от того, которое объясняется в различных руководствах, поэтому я обнаружил ошибку при завершении входа в систему. На самом деле в вашем вопросе вы можете обнаружить, что у вас будут такие же проблемы.1011 * Проблема в том, что у Google разные имена свойств, чем у FB, Twitter и т. Д., Поэтому вы должны учитывать это.
Чтобы найти свойства, я закомментировал бит выполнения и просто вывел ответ.вот так.
elsif service_route == 'google_oauth2'
render :text => omniauth.to_yaml
return
Это выведет данные вашего профиля Google, которые, как мы надеемся, будут выглядеть следующим образом.
--- !ruby/hash:OmniAuth::AuthHash
provider: google_oauth2
uid: '1234567'
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
name: Your Name
email: yourEmail
first_name: firstname
last_name: surname
image: https://animage
credentials: !ruby/hash:Hashie::Mash
token: aToken
expires_at: 123
expires: true
extra: !ruby/hash:Hashie::Mash
raw_info: !ruby/hash:Hashie::Mash
id: '123456'
email: YourEmail
verified_email: true
name: YourName
given_name: Name
family_name: surname
link: https://plus.google.com/blah
picture: https://lh6.googleusercontent.com/blah blah
gender: male
birthday: ''
locale: en-GB
Поскольку вы видите, что имена параметров разные, избавьтесь отиз user_info и вместо этого info .
Вы также заметите, что у вас есть изображение: и изображение: такпока я не пробовал это, я бы предположил, что это изображение вашего профиля.
elsif service_route == 'google_oauth2'
omniauth['info']['email'] ? email = omniauth['info']['email'] : email = ''
omniauth['info']['name'] ? name = omniauth['info']['name'] : name = ''
omniauth['uid'] ? uid = omniauth['uid'] : uid = ''
omniauth['provider'] ? provider = omniauth['provider'] : provider = ''
omniauth['info']['image'] ? image = omniauth['info']['image'] : image = ''