require 'omniauth/strategies/oauth2' class OmniAuth::Strategies::Seesaw < OmniAuth::Strategies::OAuth2 option :name, 'seesaw' option :client_options, { site: 'https://api.seesaw.co' } uid do raw_info['id'] end info do { username: raw_info['username'], display_name: raw_info['display_name'], short_display_name: raw_info['short_display_name'], biography: raw_info['biography'], created_at: raw_info['created_at'], avatar_url: raw_info['avatar_url'] } end extra do { raw_info: raw_info } end def raw_info @raw_info ||= access_token.get('/v1/me').parsed end end