class FacebookAds::Session
Attributes
access_token[RW]
api_version[RW]
app_secret[RW]
server_host[RW]
Public Class Methods
new(access_token: nil, app_secret: nil, server_host: FacebookAds.config.server_host, api_version: FacebookAds.config.api_version)
click to toggle source
# File lib/facebook_ads/session.rb, line 28 def initialize(access_token: nil, app_secret: nil, server_host: FacebookAds.config.server_host, api_version: FacebookAds.config.api_version) @access_token = access_token @app_secret = app_secret @server_host = server_host @api_version = api_version end
Private Class Methods
anonymous_session()
click to toggle source
# File lib/facebook_ads/session.rb, line 78 def anonymous_session new() end
current_session()
click to toggle source
# File lib/facebook_ads/session.rb, line 93 def current_session @@current_session ||= default_session end
current_session=(session)
click to toggle source
# File lib/facebook_ads/session.rb, line 97 def current_session=(session) @@current_session = session end
default_session()
click to toggle source
# File lib/facebook_ads/session.rb, line 82 def default_session # TODO @default_session ||= new( access_token: FacebookAds.config.access_token, app_secret: FacebookAds.config.app_secret) end
default_session=(session)
click to toggle source
# File lib/facebook_ads/session.rb, line 88 def default_session=(session) # TODO @default_session = session end
Public Instance Methods
appsecret_proof()
click to toggle source
# File lib/facebook_ads/session.rb, line 51 def appsecret_proof OpenSSL::HMAC.hexdigest( OpenSSL::Digest.new('sha256'), @app_secret, @access_token ) end
request(method, path, params = nil)
click to toggle source
# File lib/facebook_ads/session.rb, line 38 def request(method, path, params = nil) case method when :get, :post, :delete api_conn.send(method, path.gsub(/^\//,''), params) do |req| req.headers[:user_agent] = "fbbizsdk-ruby-v#{VERSION}".freeze req.params[:access_token] = access_token if access_token req.params[:appsecret_proof] = appsecret_proof if app_secret end else raise 'Unsupported HTTP method: ' + method end end
Private Instance Methods
api_base_path()
click to toggle source
# File lib/facebook_ads/session.rb, line 73 def api_base_path "https://#{self.server_host}/#{self.api_version}/".freeze end
api_conn()
click to toggle source
# File lib/facebook_ads/session.rb, line 60 def api_conn @api_conn ||= Faraday.new(url: api_base_path) do |faraday| faraday.use FacebookAds::HTTPService::VideoRequest faraday.request :multipart # TODO Json Request # TODO URL Encode - stringify json faraday.request :url_encoded faraday.response :logger, Utils.logger, bodies: FacebookAds.config.log_api_bodies faraday.adapter Faraday.default_adapter end end