Class: Google::APIClient::InstalledAppFlow Deprecated
- Inherits:
-
Object
- Object
- Google::APIClient::InstalledAppFlow
- Defined in:
- lib/google/api_client/auth/installed_app.rb
Overview
Deprecated.
Use google-auth-library-ruby instead
Small helper for the sample apps for performing OAuth 2.0 flows from the command line or in any other installed app environment.
This class is used in some sample apps and tests but is not really part
of the client libraries, and probably does not belong here. As such, it
is deprecated. If you do choose to use it, note that you must include the
launchy
gem in your bundle, as it is required by this class but not
listed in the google-api-client gem's requirements.
Constant Summary collapse
- RESPONSE_BODY =
<<-HTML <html> <head> <script> function closeWindow() { window.open('', '_self', ''); window.close(); } setTimeout(closeWindow, 10); </script> </head> <body>You may close this window.</body> </html> HTML
Instance Method Summary collapse
-
#authorize(storage = nil, options = {}) ⇒ Signet::OAuth2::Client
Request authorization.
-
#initialize(options) ⇒ InstalledAppFlow
constructor
Configure the flow.
Constructor Details
#initialize(options) ⇒ InstalledAppFlow
Configure the flow
86 87 88 89 90 91 92 93 |
# File 'lib/google/api_client/auth/installed_app.rb', line 86 def initialize() @port = [:port] || 9292 @authorization = Signet::OAuth2::Client.new({ :authorization_uri => 'https://accounts.google.com/o/oauth2/auth', :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', :redirect_uri => "http://localhost:#{@port}/"}.update() ) end |
Instance Method Details
#authorize(storage = nil, options = {}) ⇒ Signet::OAuth2::Client
Request authorization. Opens a browser and waits for response.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/google/api_client/auth/installed_app.rb', line 104 def (storage=nil, ={}) auth = @authorization server = WEBrick::HTTPServer.new( :Port => @port, :BindAddress =>"localhost", :Logger => WEBrick::Log.new(STDOUT, 0), :AccessLog => [] ) begin trap("INT") { server.shutdown } server.mount_proc '/' do |req, res| auth.code = req.query['code'] if auth.code auth.fetch_access_token! end res.status = WEBrick::HTTPStatus::RC_ACCEPTED res.body = RESPONSE_BODY server.stop end Launchy.open(auth.().to_s) server.start ensure server.shutdown end if @authorization.access_token if storage.respond_to?(:write_credentials) storage.write_credentials(@authorization) end return @authorization else return nil end end |