Class: GcalMapper::Authentification::Oauth2
- Defined in:
- lib/gcal_mapper/authentification/oauth2.rb
Overview
make the authentification with Oauth2 and request data from google calendar.
Instance Method Summary collapse
-
#access_token ⇒ String
give the acess token for th application and refresh if it is outdated.
-
#initialize(yaml_file) ⇒ Oauth2
constructor
intialize client info needed for connection to Oauth2.
-
#refresh_token ⇒ String
refresh the token by using refresh token.
Constructor Details
#initialize(yaml_file) ⇒ Oauth2
intialize client info needed for connection to Oauth2.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gcal_mapper/authentification/oauth2.rb', line 14 def initialize (yaml_file) begin oauth_yaml = YAML.load_file(yaml_file) @client_id = oauth_yaml["client_id"] @client_secret = oauth_yaml["client_secret"] @scope = oauth_yaml["scope"] @refresh_token = oauth_yaml["refresh_token"] @access_token = oauth_yaml["access_token"] @validity = Time.now.getutc.to_i rescue raise GcalMapper::AuthFileError end end |
Instance Method Details
#access_token ⇒ String
give the acess token for th application and refresh if it is outdated
31 32 33 34 35 36 37 |
# File 'lib/gcal_mapper/authentification/oauth2.rb', line 31 def access_token if (Time.now.getutc.to_i - @validity) > 3600 refresh_token end @access_token end |
#refresh_token ⇒ String
refresh the token by using refresh token
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/gcal_mapper/authentification/oauth2.rb', line 42 def refresh_token data = { 'client_id' => @client_id, 'client_secret' => @client_secret, 'refresh_token' => @refresh_token, 'grant_type' => 'refresh_token' } = { :method => :post, :headers => {'Content-Type' => 'application/x-www-form-urlencoded'}, :parameters => data } req = GcalMapper::RestRequest.new(Authentification::REQUEST_URL, ) begin response = req.execute rescue raise GcalMapper::AuthentificationError end @validity = Time.now.getutc.to_i @access_token = response['access_token'] response end |