class MessageQuickly::Api::Client
Attributes
app_id[RW]
page_access_token[RW]
page_id[RW]
Public Class Methods
new(options = {}) { |self| ... }
click to toggle source
# File lib/message_quickly/api/client.rb, line 9 def initialize(options = {}) options.each { |key, value| instance_variable_set("@#{key}", value) } yield self if block_given? end
Public Instance Methods
delete(request_string, params = {})
click to toggle source
# File lib/message_quickly/api/client.rb, line 34 def delete(request_string, params = {}) params[:access_token] = page_access_token response = connection.delete(request_string) do |request| request.headers['Content-Type'] = 'application/json' request.body = JSON.generate(params) end parse_json(response) end
get(request_string, params = {})
click to toggle source
# File lib/message_quickly/api/client.rb, line 14 def get(request_string, params = {}) params[:access_token] = page_access_token response = connection.get(request_string, params) parse_json(response) end
post(request_string, params = {})
click to toggle source
# File lib/message_quickly/api/client.rb, line 20 def post(request_string, params = {}) params[:access_token] = page_access_token response = connection.post(request_string) do |request| if params[:filedata].present? request.headers['Content-Type'] = 'multipart/form-data' request.body = params else request.headers['Content-Type'] = 'application/json' request.body = JSON.generate(params) end end parse_json(response) end
Private Instance Methods
connection(params = {})
click to toggle source
# File lib/message_quickly/api/client.rb, line 60 def connection(params = {}) @connection ||= Faraday.new(:url => "https://graph.facebook.com/#{MessageQuickly::FB_MESSENGER_VERSION}") do |faraday| faraday.request :multipart # if params[:multipart] faraday.request :url_encoded # form-encode POST params faraday.response :logger unless Rails.env.test? # log requests to STDOUT faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end end
parse_json(response)
click to toggle source
# File lib/message_quickly/api/client.rb, line 45 def parse_json(response) json = JSON.parse(response.body) if json['error'] case json['error']['type'] when 'OAuthException' raise OauthException.new(json['error']) when 'GraphMethodException' raise GraphMethodException.new(json['error']) else raise FacebookApiException.new(json['error']) end end json end