This repository has been archived by the owner on Jan 22, 2018. It is now read-only.
/
client.rb
84 lines (71 loc) 路 2.17 KB
/
client.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
require 'twitter_oauth/timeline'
require 'twitter_oauth/status'
require 'twitter_oauth/account'
require 'twitter_oauth/direct_messages'
require 'twitter_oauth/search'
require 'twitter_oauth/notifications'
require 'twitter_oauth/blocks'
require 'twitter_oauth/friendships'
require 'twitter_oauth/user'
require 'twitter_oauth/favorites'
require 'twitter_oauth/utils'
require 'twitter_oauth/trends'
require 'twitter_oauth/lists'
require 'twitter_oauth/saved_searches'
require 'twitter_oauth/spam'
module TwitterOAuth
class Client
def initialize(options = {})
@consumer_key = options[:consumer_key]
@consumer_secret = options[:consumer_secret]
@token = options[:token]
@secret = options[:secret]
end
def authorize(token, secret, options = {})
request_token = OAuth::RequestToken.new(
consumer, token, secret
)
@access_token = request_token.get_access_token(options)
@token = @access_token.token
@secret = @access_token.secret
@access_token
end
def show(username)
get("/users/show/#{username}.json")
end
# Returns the string "ok" in the requested format with a 200 OK HTTP status code.
def test
get("/help/test.json")
end
def request_token(options={})
consumer.get_request_token(options)
end
def authentication_request_token(options={})
consumer.options[:authorize_path] = '/oauth/authenticate'
request_token(options)
end
private
def consumer
@consumer ||= OAuth::Consumer.new(
@consumer_key,
@consumer_secret,
{ :site=>"http://twitter.com" }
)
end
def access_token
@access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
end
def get(url)
oauth_response = access_token.get(url)
JSON.parse(oauth_response.body)
end
def post(url, body = '', headers = {})
oauth_response = access_token.post(url, body, headers)
JSON.parse(oauth_response.body)
end
def delete(url)
oauth_response = access_token.delete(url)
JSON.parse(oauth_response.body)
end
end
end