Class: TwitterAPI::BaseClient

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter_api.rb

Overview

A base client class.

Direct Known Subclasses

Client

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ TwitterAPI::BaseClient

Initializes a BaseClient object.

Parameters:

  • credentials (Hash)

    Credentials



19
20
21
# File 'lib/twitter_api.rb', line 19

def initialize(credentials)
  @credentials = credentials
end

Instance Method Details

#get(resource_url, params) ⇒ TwitterAPI::Response

Calls a Twitter REST API using GET method.

Parameters:

  • resource_url (String)

    Resource URL

  • params (Hash)

    Parameters

Returns:



28
29
30
31
32
33
# File 'lib/twitter_api.rb', line 28

def get(resource_url, params)
  headers = {'Authorization' => authorization('GET', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  res = open(url, headers)
  Response.new(res)
end

#post(resource_url, params, data = nil) ⇒ TwitterAPI::Response

Calls a Twitter REST API using POST method.

Parameters:

  • resource_url (String)

    Resource URL

  • params (Hash)

    Parameters

  • data (String) (defaults to: nil)

    Posts data

Returns:



41
42
43
44
45
46
47
48
49
50
# File 'lib/twitter_api.rb', line 41

def post(resource_url, params, data=nil)
  headers = {'Authorization' => authorization('POST', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  uri = URI.parse(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  res = http.request_post(url, data, headers)
  Response.new(res)
end

#post_multipart(resource_url, params, data = {}) ⇒ TwitterAPI::Response

Calls a Twitter REST API using POST (multipart/form-data) method.

Parameters:

  • resource_url (String)

    Resource URL

  • params (Hash)

    Parameters

  • data (Array) (defaults to: {})

    Posts Multipart data

Returns:



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/twitter_api.rb', line 58

def post_multipart(resource_url, params, data={})
  headers = {'Authorization' => authorization('POST', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  uri = URI.parse(url)
  form_data = []
  data.each{|k,v|
    form_data << [k,v]
  }
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  req = Net::HTTP::Post.new(uri.request_uri, headers)
  req.set_form(form_data, 'multipart/form-data')
  res = http.start{|h|
    h.request(req)
  }
  Response.new(res)
end