class SoapyBing::OauthCredentials
Constants
- SANDBOX_TOKEN_URL
- TOKEN_URL
Attributes
client_id[R]
client_secret[R]
refresh_token[R]
Public Class Methods
new(oauth_options = {})
click to toggle source
# File lib/soapy_bing/oauth_credentials.rb, line 14 def initialize(oauth_options = {}) param_guard = ParamGuard.new(oauth_options, env_namespace: 'BING_ADS_OAUTH') @client_id = param_guard.require!(:client_id) @client_secret = param_guard.require!(:client_secret) @refresh_token = param_guard.require!(:refresh_token) end
Public Instance Methods
access_token()
click to toggle source
# File lib/soapy_bing/oauth_credentials.rb, line 21 def access_token @access_token ||= request_access_token end
Private Instance Methods
access_token_params()
click to toggle source
# File lib/soapy_bing/oauth_credentials.rb, line 41 def access_token_params { client_id: client_id, client_secret: client_secret, grant_type: 'refresh_token', refresh_token: refresh_token } end
request_access_token()
click to toggle source
# File lib/soapy_bing/oauth_credentials.rb, line 27 def request_access_token resp = HTTParty.post(token_url, body: access_token_params) if resp.code != 200 raise TokenRefreshError, "#{resp['error_description']} (#{resp['error']})" end resp['access_token'] end
token_url()
click to toggle source
# File lib/soapy_bing/oauth_credentials.rb, line 37 def token_url ENV['BING_ADS_SANDBOX'] == '1' ? SANDBOX_TOKEN_URL : TOKEN_URL end