moomerman-twitter_oauth 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +48 -0
- metadata +2 -3
- data/README.md +0 -7
- data/lib/twitter_oauth/client.rb +0 -63
data/README.textile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
h1. Twitter OAuth client library for Ruby
|
2
|
+
|
3
|
+
To make authorized requests with the client library you'll need to [create a Twitter OAuth Application](http://twitter.com/oauth_clients/new).
|
4
|
+
|
5
|
+
See [sinitter](http://github.com/moomerman/sinitter/tree/master) for a full website integration example.
|
6
|
+
|
7
|
+
h2. Unauthorized request example
|
8
|
+
|
9
|
+
<pre><code>client = TwitterOAuth::Client.new
|
10
|
+
|
11
|
+
puts client.show('twitter')
|
12
|
+
=> => {"status"=>{"truncated"=>false, "favorited"=>false, "text"=>"Update on service issues http://tinyurl.com/ca872j", "id"=>1357776683, "in_reply_to_user_id"=>nil, "in_reply_to_status_id"=>nil, "source"=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>", "created_at"=>"Fri Mar 20 01:17:35 +0000 2009"}, "name"=>"Twitter", "profile_sidebar_fill_color"=>"CDFFFF", "profile_sidebar_border_color"=>"8a6447", "profile_background_tile"=>false, "profile_link_color"=>"0000ff", "url"=>"http://twitter.com", "favourites_count"=>0, "id"=>783214, "description"=>"Always wondering what everyone's doing.", "profile_text_color"=>"000000", "protected"=>false, "utc_offset"=>-28800, "screen_name"=>"twitter", "profile_background_color"=>"9ae4e8", "time_zone"=>"Pacific Time (US & Canada)", "followers_count"=>469150, "profile_background_image_url"=>"http://static.twitter.com/images/themes/theme1/bg.gif", "friends_count"=>30, "statuses_count"=>290, "location"=>"San Francisco, CA", "profile_image_url"=>"http://s3.amazonaws.com/twitter_production/profile_images/75075164/twitter_bird_profile_normal.png", "created_at"=>"Tue Feb 20 14:35:54 +0000 2007"}
|
13
|
+
</code></pre>
|
14
|
+
|
15
|
+
h2. Authorized request example
|
16
|
+
|
17
|
+
<pre><code>TwitterOAuth::Client::CLIENT_KEY = 'YOUR-CONSUMER-KEY'
|
18
|
+
TwitterOAuth::Client::CLIENT_SECRET = 'YOUR-CONSUMER-SECRET'
|
19
|
+
|
20
|
+
client = TwitterOAuth::Client.new
|
21
|
+
request_token = client.request_token
|
22
|
+
|
23
|
+
request_token.authorize_url
|
24
|
+
=> http://twitter.com/oauth/authorize?oauth_token=TOKEN
|
25
|
+
</code></pre>
|
26
|
+
|
27
|
+
In your application your user would be redirected to Twitter to authorize the application at this point. You'll need to store
|
28
|
+
the request token (usually in the session) for later.
|
29
|
+
|
30
|
+
<pre><code>access_token = client.authorize(
|
31
|
+
request_token.token,
|
32
|
+
request_token.secret
|
33
|
+
)
|
34
|
+
|
35
|
+
client.authorized?
|
36
|
+
=> true
|
37
|
+
|
38
|
+
client.update('checking out the twitter_oauth library') # sends a twitter status update
|
39
|
+
</code></pre>
|
40
|
+
|
41
|
+
Now if you keep hold of the access_token (usually in the database) for this user you won't need to re-authorize them next time.
|
42
|
+
|
43
|
+
<pre><code>access_token = @user.access_token # assuming user ivar
|
44
|
+
client = TwitterOAuth::Client.new(:token => access_token.token, :secret => access_token.secret)
|
45
|
+
|
46
|
+
client.authorized?
|
47
|
+
=> true
|
48
|
+
</code></pre>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moomerman-twitter_oauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Taylor
|
@@ -41,10 +41,9 @@ extensions: []
|
|
41
41
|
extra_rdoc_files: []
|
42
42
|
|
43
43
|
files:
|
44
|
-
- README.
|
44
|
+
- README.textile
|
45
45
|
- lib/twitter_oauth
|
46
46
|
- lib/twitter_oauth.rb
|
47
|
-
- lib/twitter_oauth/client.rb
|
48
47
|
has_rdoc: false
|
49
48
|
homepage: http://github.com/moomerman/twitter_oauth
|
50
49
|
post_install_message:
|
data/README.md
DELETED
data/lib/twitter_oauth/client.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
module TwitterOAuth
|
2
|
-
class Client
|
3
|
-
|
4
|
-
def initialize(options = {})
|
5
|
-
@username = options[:username]
|
6
|
-
@token = options[:token]
|
7
|
-
@secret = options[:secret]
|
8
|
-
end
|
9
|
-
|
10
|
-
def login(token, secret)
|
11
|
-
request_token = OAuth::RequestToken.new(
|
12
|
-
consumer, token, secret
|
13
|
-
)
|
14
|
-
@access_token = request_token.get_access_token
|
15
|
-
@token = @access_token.token
|
16
|
-
@secret = @access_token.secret
|
17
|
-
@access_token
|
18
|
-
end
|
19
|
-
|
20
|
-
def show(username = @username)
|
21
|
-
oauth_response = access_token.get("/users/show/#{username}.json")
|
22
|
-
JSON.parse(oauth_response.body)
|
23
|
-
end
|
24
|
-
|
25
|
-
def authorized?
|
26
|
-
oauth_response = access_token.get('/account/verify_credentials.json')
|
27
|
-
return oauth_response.class == Net::HTTPOK
|
28
|
-
end
|
29
|
-
|
30
|
-
def friends
|
31
|
-
oauth_response = access_token.get('/statuses/friends_timeline.json')
|
32
|
-
JSON.parse(oauth_response.body)
|
33
|
-
end
|
34
|
-
|
35
|
-
def update(message)
|
36
|
-
oauth_response = access_token.post('/statuses/update.json', :status => message)
|
37
|
-
JSON.parse(oauth_response.body)
|
38
|
-
end
|
39
|
-
|
40
|
-
def message(user, text)
|
41
|
-
oauth_response = access_token.post('/direct_messages/new.format', :user => user, :text => text)
|
42
|
-
JSON.parse(oauth_response.body)
|
43
|
-
end
|
44
|
-
|
45
|
-
def request_token
|
46
|
-
consumer.get_request_token
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
def consumer
|
51
|
-
@consumer ||= OAuth::Consumer.new(
|
52
|
-
CLIENT_KEY,
|
53
|
-
CLIENT_SECRET,
|
54
|
-
{ :site=>"http://twitter.com" }
|
55
|
-
)
|
56
|
-
end
|
57
|
-
|
58
|
-
def access_token
|
59
|
-
@access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|