class AccountKit
Constants
- DEFAULT_VERSION
- GRANT_TYPE
- VERSION
Public Class Methods
configure() { |Config| ... }
click to toggle source
# File lib/account_kit.rb, line 10 def self.configure yield Config end
method_missing(name, *args, &block)
click to toggle source
Support older versions
# File lib/account_kit/base.rb, line 8 def method_missing(name, *args, &block) new.send(name, *args, &block) end
new(options = {})
click to toggle source
# File lib/account_kit/base.rb, line 13 def initialize(options = {}) @app_id = options.fetch(:app_id, Config.app_id) @app_secret = options.fetch(:app_secret, Config.app_secret) @api_version = options.fetch(:api_version, Config.api_version || DEFAULT_VERSION) @require_app_secret = options.fetch(:require_app_secret, Config.require_app_secret) end
Public Instance Methods
access_token(code)
click to toggle source
# File lib/account_kit/base.rb, line 20 def access_token(code) uri = build_access_token_uri(code) send_payload(uri) end
me(access_token)
click to toggle source
# File lib/account_kit/base.rb, line 25 def me(access_token) uri = build_me_uri(access_token) send_payload(uri) end
Private Instance Methods
access_token_params(code)
click to toggle source
# File lib/account_kit/base.rb, line 65 def access_token_params(code) { grant_type: GRANT_TYPE, code: code, access_token: app_access_token } end
access_token_url()
click to toggle source
# File lib/account_kit/base.rb, line 73 def access_token_url "https://graph.accountkit.com/#{@api_version}/access_token" end
app_access_token()
click to toggle source
# File lib/account_kit/base.rb, line 81 def app_access_token ['AA', @app_id, @app_secret].join('|') end
appsecret_proof(access_token)
click to toggle source
# File lib/account_kit/base.rb, line 60 def appsecret_proof(access_token) sha256 = OpenSSL::Digest::SHA256.new OpenSSL::HMAC.hexdigest(sha256, @app_secret, access_token) end
build_access_token_uri(code)
click to toggle source
# File lib/account_kit/base.rb, line 42 def build_access_token_uri(code) uri = URI(access_token_url) uri.query = URI.encode_www_form(access_token_params(code)) uri end
build_me_uri(access_token)
click to toggle source
# File lib/account_kit/base.rb, line 48 def build_me_uri(access_token) uri = URI(me_url) uri.query = URI.encode_www_form(me_params(access_token)) uri end
me_params(access_token)
click to toggle source
# File lib/account_kit/base.rb, line 54 def me_params(access_token) params = { access_token: access_token } params[:appsecret_proof] = appsecret_proof(access_token) if @require_app_secret params end
me_url()
click to toggle source
# File lib/account_kit/base.rb, line 77 def me_url "https://graph.accountkit.com/#{@api_version}/me" end
send_payload(uri)
click to toggle source
# File lib/account_kit/base.rb, line 32 def send_payload(uri) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) request.content_type = 'application/json' http.request(request) end