lib/drive_env.rb in drive_env-0.3.1 vs lib/drive_env.rb in drive_env-0.4.0
- old
+ new
@@ -7,16 +7,24 @@
autoload :Config, 'drive_env/config'
class << self
def authorizer(client_id, client_secret, token_store_file)
unless @authorizer
- client_id = Google::Auth::ClientId.new(client_id, client_secret)
+ cred = ENV['GOOGLE_APPLICATION_CREDENTIALS']
scope = %w[
https://www.googleapis.com/auth/drive
https://spreadsheets.google.com/feeds/
]
- token_store = Google::Auth::Stores::FileTokenStore.new(file: token_store_file)
- @authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store)
+ if cred.nil?
+ client_id = Google::Auth::ClientId.new(client_id, client_secret)
+ token_store = Google::Auth::Stores::FileTokenStore.new(file: token_store_file)
+ @authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store)
+ else
+ @authorizer = Google::Auth::ServiceAccountCredentials.make_creds(
+ json_key_io: File.open(cred),
+ scope: scope
+ )
+ end
end
@authorizer
end
end
end