class ADM::AccessToken
Attributes
client_id[R]
client_secret[R]
token[R]
Public Class Methods
fetch(client_id=nil, client_secret=nil)
click to toggle source
# File lib/adm/access_token.rb, line 20 def self.fetch client_id=nil, client_secret=nil client_id ||= ADM.client_id client_secret ||= ADM.client_secret data = request_data client_id, client_secret if data['error'] raise TokenGetError, response.body end new(data) end
get_token()
click to toggle source
# File lib/adm/access_token.rb, line 51 def self.get_token if @token && @token.valid? return @token.token end @token = fetch @token.token end
new(opts)
click to toggle source
# File lib/adm/access_token.rb, line 5 def initialize opts @token = opts['access_token'] @expires_at = Time.now+opts['expires_in'].to_i @type = opts['token_type'] @scope = opts['scope'] end
request_data(client_id, client_secret)
click to toggle source
# File lib/adm/access_token.rb, line 32 def self.request_data client_id, client_secret request = Typhoeus::Request.new( 'https://api.amazon.com/auth/O2/token', method: :post, body: { grant_type: :'client_credentials', scope: :'messaging:push', client_id: client_id, client_secret: client_secret }, headers: { :Accept => :'application/json' } ) response = request.run MultiJson.load(response.body) end
Public Instance Methods
to_s()
click to toggle source
# File lib/adm/access_token.rb, line 12 def to_s token end
valid?()
click to toggle source
# File lib/adm/access_token.rb, line 16 def valid? @expires_at < Time.now end