RUBY: получить имя пользователя Steam от OmniAuth

Я использовал Omniauth для получения среды, содержащей имя пользователя Steam.

Вывод выглядит так:

<OmniAuth::AuthHash::InfoHash image="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/d4/d45a66fee7932d270ec32d4457d865b485245cf1_medium.jpg" location="YT, CA" name="Daiki" nickname="Corybantic Walrus" urls=#<OmniAuth::AuthHash FriendList=#<URI::HTTP:0x0000000614f590 URL:http://api.steampowered.com/ISteamUser/GetFriendList/v0001/?key=4A8837BF7A6C439681B57F4962D8B011&steamid=76561198128055024&relationship=friend> Profile="http://steamcommunity.com/id/hatterkiller/">> provider="steam" uid="76561198128055024">

Я действительно не знаю, как отформатировать это в переполнении стека, так что вот более чистый Pastebin.

Информация, которая мне нужна, находится внутри <Omniauth::AuthHash::Infohash вещь кода. Есть ли способ использовать Ruby, чтобы получить имя пользователя (никнейм) и поместить его в массив?

Вроде как, но это работало только для предыдущего формата вывода:

    auth = request.env['omniauth.auth']

 session[:current_user] = { :nickname => auth.info['nickname'],
                                      :image => auth.info['image'],
                                      :uid => auth.uid }

1 ответ

Что-то вроде этого:

session[:current_user] = {
  nickname: auth[:info][:nickname],
  image:    auth[:info][:image],
  uid:      auth[:uid]
}
Другие вопросы по тегам