Class: RetriableX::Oauth2Client

Inherits:
Object
  • Object
show all
Defined in:
lib/retriable_x/oauth2_client.rb

Overview

OAuth2 Client

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Oauth2Client

Returns a new instance of Oauth2Client.

Parameters:

  • client_key (String)

    OAuth2 client_key

  • client_secret (String)

    OAuth2 client_secret

  • redirect_uri (String)

    OAuth2 redirect_uri



11
12
13
14
15
16
17
18
# File 'lib/retriable_x/oauth2_client.rb', line 11

def initialize(**args)
  @args = args
  @client = TwitterOAuth2::Client.new(
    identifier: @args[:client_id],
    secret: @args[:client_secret],
    redirect_uri: @args[:redirect_uri] || ""
  )
end

Instance Method Details

#access_token!(code, code_verifier) ⇒ Object



25
26
27
28
# File 'lib/retriable_x/oauth2_client.rb', line 25

def access_token!(code, code_verifier)
  @client.authorization_code = code
  @client.access_token! code_verifier
end

#oauth_url(scopes) ⇒ Object



20
21
22
23
# File 'lib/retriable_x/oauth2_client.rb', line 20

def oauth_url(scopes)
  authorization_uri = @client.authorization_uri(scope: scopes)
  [authorization_uri, @client.code_verifier, @client.state]
end

#refresh!(refresh_token) ⇒ Object



30
31
32
33
# File 'lib/retriable_x/oauth2_client.rb', line 30

def refresh!(refresh_token)
  @client.refresh_token = refresh_token
  @client.access_token!
end