class Facebook::Leads::ResponseClient
Attributes
responses[R]
Public Class Methods
new(access_token)
click to toggle source
# File lib/facebook/leads.rb, line 10 def initialize(access_token) @responses = [] @access_token = access_token end
Public Instance Methods
get_form_responses(form_id)
click to toggle source
# File lib/facebook/leads.rb, line 15 def get_form_responses(form_id) response = request(url(form_id)) process_response(response) while @next_link response = request(@next_link) process_response(response) end return @responses end
Private Instance Methods
process_response(response)
click to toggle source
# File lib/facebook/leads.rb, line 29 def process_response(response) if response.is_a? Hash return response end body = JSON.parse(response.body) @responses.concat(body["data"]) paging = body["paging"] @next_link = paging["next"] end
request(url)
click to toggle source
# File lib/facebook/leads.rb, line 42 def request(url) begin RestClient.get(url) rescue RestClient::Exception, Errno::ECONNREFUSED => e begin body = JSON.parse(e.http_body) error = body["error"] reason = error["message"] fb_code = error["code"] rescue => p reason = e.http_body fb_code = "-1" end return { :success => false, :status_code => e.http_code, :fb_code => fb_code, :reason => reason } end end
url(form_id)
click to toggle source
# File lib/facebook/leads.rb, line 67 def url(form_id) base_url = "https://graph.facebook.com/v2.6/" [base_url, form_id, "/leads?access_token=", @access_token].compact.join end