Class: Square::OAuth::Client
- Inherits:
-
Object
- Object
- Square::OAuth::Client
- Defined in:
- lib/square/o_auth/client.rb
Instance Method Summary collapse
- #authorize(request_options: {}, **params) ⇒ untyped
- #initialize(client:) ⇒ void constructor
-
#obtain_token(request_options: {}, **params) ⇒ Square::Types::ObtainTokenResponse
Returns an OAuth access token and refresh token using the
authorization_codeorrefresh_tokengrant type. -
#retrieve_token_status(request_options: {}, **params) ⇒ Square::Types::RetrieveTokenStatusResponse
Returns information about an OAuth access token or an application’s personal access token.
-
#revoke_token(request_options: {}, **params) ⇒ Square::Types::RevokeTokenResponse
Revokes an access token generated with the OAuth flow.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/square/o_auth/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#authorize(request_options: {}, **params) ⇒ untyped
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/square/o_auth/client.rb', line 172 def (request_options: {}, **params) Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "oauth2/authorize", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#obtain_token(request_options: {}, **params) ⇒ Square::Types::ObtainTokenResponse
Returns an OAuth access token and refresh token using the authorization_code
or refresh_token grant type.
When grant_type is authorization_code:
- With the code flow,
provide
code,client_id, andclient_secret. - With the PKCE flow,
provide
code,client_id, andcode_verifier.
When grant_type is refresh_token:
- With the code flow, provide
refresh_token,client_id, andclient_secret. The response returns the same refresh token provided in the request. - With the PKCE flow, provide
refresh_tokenandclient_id. The response returns a new refresh token.
You can use the scopes parameter to limit the set of permissions authorized by the
access token. You can use the short_lived parameter to create an access token that
expires in 24 hours.
Important: OAuth tokens should be encrypted and stored on a secure server. Application clients should never interact directly with OAuth tokens.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/square/o_auth/client.rb', line 91 def obtain_token(request_options: {}, **params) params = Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "oauth2/token", body: Square::OAuth::Types::ObtainTokenRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::ObtainTokenResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#retrieve_token_status(request_options: {}, **params) ⇒ Square::Types::RetrieveTokenStatusResponse
Returns information about an OAuth access token or an application’s personal access token.
Add the access token to the Authorization header of the request.
Important: The Authorization header you provide to this endpoint must have the following format:
Authorization: Bearer ACCESS_TOKEN
where ACCESS_TOKEN is a
valid production authorization credential.
If the access token is expired or not a valid access token, the endpoint returns an UNAUTHORIZED error.
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/square/o_auth/client.rb', line 141 def retrieve_token_status(request_options: {}, **params) Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "oauth2/token/status", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::RetrieveTokenStatusResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#revoke_token(request_options: {}, **params) ⇒ Square::Types::RevokeTokenResponse
Revokes an access token generated with the OAuth flow.
If an account has more than one OAuth access token for your application, this endpoint revokes all of them, regardless of which token you specify.
Important: The Authorization header for this endpoint must have the
following format:
Authorization: Client APPLICATION_SECRET
Replace APPLICATION_SECRET with the application secret on the OAuth
page for your application in the Developer Dashboard.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/square/o_auth/client.rb', line 37 def revoke_token(request_options: {}, **params) params = Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "oauth2/revoke", body: Square::OAuth::Types::RevokeTokenRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::RevokeTokenResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |