Class: EcwidApi::OAuth
- Inherits:
-
Object
- Object
- EcwidApi::OAuth
- Defined in:
- lib/ecwid_api/o_auth.rb
Overview
Public: Authentication objects manage OAuth authentication with an Ecwid
store.
Examples
app = EcwidApi::Authentication.new do |config|
# see initialize for configuration
end
app.oauth_url # send the user here to authorize the app
token = app.access_token(params[:code]) # this is the code they provide
# to the redirect_uri
token.access_token
token.store_id # these are what you need to access the API
Constant Summary collapse
- CONFIG =
%w(client_id client_secret scope redirect_uri)
Instance Method Summary collapse
-
#access_token(code) ⇒ Object
Public: Obtain the access token in order to use the API.
-
#initialize {|_self| ... } ⇒ OAuth
constructor
Public: Initializes a new Ecwid Authentication for OAuth.
-
#oauth_url ⇒ Object
Public: The URL for OAuth authorization.
Constructor Details
#initialize {|_self| ... } ⇒ OAuth
Public: Initializes a new Ecwid Authentication for OAuth
Examples
app = EcwidApi::Authentication.new do |config|
config.client_id = "some client id"
config.client_secret = "some client secret"
config.scope "this_is_what_i_want_to_do oh_and_that_too"
config.redirect_uri = "https://example.com/oauth"
end
36 37 38 39 40 41 |
# File 'lib/ecwid_api/o_auth.rb', line 36 def initialize yield(self) if block_given? CONFIG.each do |method| raise Error.new("#{method} is required to initialize a new EcwidApi::Authentication") unless send(method) end end |
Instance Method Details
#access_token(code) ⇒ Object
Public: Obtain the access token in order to use the API
code - the temporary code obtained from the authorization callback
Examples
token = app.access_token(params[:code])
token.access_token # the access token that authenticates each API request
token.store_id # the authenticated Ecwid store_id
Returns an OpenStruct which responds with the information needed to access the API for a store.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/ecwid_api/o_auth.rb', line 64 def access_token(code) response = connection.post("/api/oauth/token", client_id: client_id, client_secret: client_secret, code: code, redirect_uri: redirect_uri, grant_type: "authorization_code" ) if response.success? OpenStruct.new(response.body) else raise Error.new(response.body["error_description"]) end end |
#oauth_url ⇒ Object
Public: The URL for OAuth authorization.
This is the URL that the user will need to go to to authorize the app with the Ecwid store.
48 49 50 |
# File 'lib/ecwid_api/o_auth.rb', line 48 def oauth_url "https://my.ecwid.com/api/oauth/authorize?" + oauth_query end |