class Net::Facebook::Api::Request

Public Class Methods

new(attrs = {}) click to toggle source
# File lib/net/facebook/api/request.rb, line 9
def initialize(attrs = {})
  @host = 'graph.facebook.com'
  @query = attrs[:username] if attrs[:username]
  @access_token = attrs[:access_token] if attrs[:access_token]
  @path = attrs.fetch :path, "/v2.3/#{@query}"
  @method = attrs.fetch :method, :get
end

Public Instance Methods

run() click to toggle source
# File lib/net/facebook/api/request.rb, line 17
def run
  #print "#{as_curl}\n"
  case response = run_http_request
  when Net::HTTPOK
    JSON.parse(response.body)
  else
    raise Errors::ResponseError, response
  end
end

Private Instance Methods

access_token() click to toggle source
# File lib/net/facebook/api/request.rb, line 43
def access_token
  @access_token ? { access_token: @access_token }.to_param : fb_app_key_params
end
as_curl() click to toggle source
# File lib/net/facebook/api/request.rb, line 53
def as_curl
  'curl'.tap do |curl|
    curl <<  " -X #{http_request.method}"
    http_request.each_header do |name, value|
      curl << %Q{ -H "#{name}: #{value}"}
    end
    curl << %Q{ -d '#{http_request.body}'} if http_request.body
    curl << %Q{ "#{@uri.to_s}"}
  end
end
fb_app_key_params() click to toggle source
# File lib/net/facebook/api/request.rb, line 47
def fb_app_key_params
  {}.tap do |keys|
    keys.merge! access_token: "#{Net::Facebook.configuration.client_id}|#{Net::Facebook.configuration.client_secret}"
  end.to_param
end
http_request() click to toggle source
# File lib/net/facebook/api/request.rb, line 34
def http_request
  http_class = "Net::HTTP::#{@method.capitalize}".constantize
  @http_request ||= http_class.new(uri.request_uri)
end
run_http_request() click to toggle source
# File lib/net/facebook/api/request.rb, line 28
def run_http_request
  Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    http.request http_request
  end
end
uri() click to toggle source
# File lib/net/facebook/api/request.rb, line 39
def uri
  @uri ||= URI::HTTPS.build host: @host, path: @path, query: access_token
end