class Lionel::GoogleAuthentication
Attributes
access_token[RW]
client[W]
refresh_token[RW]
Public Instance Methods
api_console_url()
click to toggle source
# File lib/lionel/google_authentication.rb, line 42 def api_console_url "https://code.google.com/apis/console" end
client()
click to toggle source
# File lib/lionel/google_authentication.rb, line 58 def client @client ||= Google::APIClient.new(auto_refresh_token: true) end
data()
click to toggle source
# File lib/lionel/google_authentication.rb, line 11 def data raise "No access token" unless access_token { google_token: access_token, google_refresh_token: refresh_token, google_client_id: google_client_id, google_client_secret: google_client_secret } end
refresh()
click to toggle source
# File lib/lionel/google_authentication.rb, line 28 def refresh return false unless refresh_token && access_token authorization.access_token = access_token authorization.refresh_token = refresh_token authorization.refresh! @access_token = authorization.access_token end
retrieve_access_token(authorization_code)
click to toggle source
# File lib/lionel/google_authentication.rb, line 21 def retrieve_access_token(authorization_code) authorization.code = authorization_code authorization.fetch_access_token! @access_token = authorization.access_token @refresh_token = authorization.refresh_token end
Private Instance Methods
build_client()
click to toggle source
# File lib/lionel/google_authentication.rb, line 64 def build_client auth = client.authorization auth.client_id = google_client_id auth.client_secret = google_client_secret auth.scope = scopes auth.redirect_uri = "urn:ietf:wg:oauth:2.0:oob" client end
one_year()
click to toggle source
# File lib/lionel/google_authentication.rb, line 85 def one_year # in seconds 60*60*24*36 end
scopes()
click to toggle source
# File lib/lionel/google_authentication.rb, line 77 def scopes [ "https://docs.google.com/feeds/", "https://docs.googleusercontent.com/", "https://spreadsheets.google.com/feeds/" ] end