Class: TwitterAPI::Client

Inherits:
BaseClient show all
Defined in:
lib/twitter_api.rb

Overview

A client class.

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ TwitterAPI::Client

Initializes a Client object.

Parameters:

  • Credentials



98
99
100
# File 'lib/twitter_api.rb', line 98

def initialize(credentials)
  super
end

Instance Method Details

#geo_id_place_id(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



161
162
163
164
# File 'lib/twitter_api.rb', line 161

def geo_id_place_id(params)
  resource_url = "https://api.twitter.com/1.1/geo/id/#{params['place_id']}.json"
  get(resource_url, params)
end

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

Calls a Twitter REST API using GET method.

Parameters:

  • Resource URL

  • Parameters

Returns:



107
108
109
110
111
112
# File 'lib/twitter_api.rb', line 107

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

#media_upload(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



221
222
223
224
# File 'lib/twitter_api.rb', line 221

def media_upload(params)
  resource_url = 'https://upload.twitter.com/1.1/media/upload.json'
  post_multipart(resource_url, {}, params)
end

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

Calls a Twitter REST API using POST method.

Parameters:

  • Resource URL

  • Parameters

  • (defaults to: nil)

    Posts data

Returns:



120
121
122
123
124
125
126
127
128
129
# File 'lib/twitter_api.rb', line 120

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

  • Parameters

  • (defaults to: {})

    Posts Multipart data

Returns:



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/twitter_api.rb', line 137

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

#search_tweets(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



171
172
173
174
# File 'lib/twitter_api.rb', line 171

def search_tweets(params)
  resource_url = 'https://api.twitter.com/1.1/search/tweets.json'
  get(resource_url, params)
end

#statuses_mentions_timeline(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



181
182
183
184
# File 'lib/twitter_api.rb', line 181

def statuses_mentions_timeline(params)
  resource_url = 'https://api.twitter.com/1.1/statuses/mentions_timeline.json'
  get(resource_url, params)
end

#statuses_show_id(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



191
192
193
194
# File 'lib/twitter_api.rb', line 191

def statuses_show_id(params)
  resource_url = 'https://api.twitter.com/1.1/statuses/show.json'
  get(resource_url, params)
end

#statuses_update(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



231
232
233
234
# File 'lib/twitter_api.rb', line 231

def statuses_update(params)
  resource_url = 'https://api.twitter.com/1.1/statuses/update.json'
  post(resource_url, params)
end

#statuses_user_timeline(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



201
202
203
204
# File 'lib/twitter_api.rb', line 201

def statuses_user_timeline(params)
  resource_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json'
  get(resource_url, params)
end

#users_lookup(params) ⇒ TwitterAPI::Response

Parameters:

  • Parameters

Returns:



211
212
213
214
# File 'lib/twitter_api.rb', line 211

def users_lookup(params)
  resource_url = 'https://api.twitter.com/1.1/users/lookup.json'
  get(resource_url, params)
end