Now I've started working on OAuth stuff again. I took a look at some blog entries and tried to build my first "Hello World" progarm for Twitter API with OAuth. This looked simple but it took me some time to write it. I will show you a few steps on how to write a Twitter client with OAuth in Ruby.
As a prerequisite, you need to have two Ruby gem packages installed on your system. If not, run the following commands on the terminal:
sudo gem install oauth sudo gem install twitter
1. Get a consumer key and a consumer secret by registering your client at Twitter's website.
2. Have the users authorize your Twitter client to use their account
Type "irb" to start irb on the terminal. Copy and paste the below(double-click on the pane and you can copy and paste more easily):
require 'rubygems' require 'oauth' CONSUMER_KEY = "(your consumer key)" CONSUMER_SECRET = "(your consumer secret)" consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, :site => "http://twitter.com") request_token = consumer.get_request_token request_token.authorize_urlNavigate to the URL for user authorization and have users to authorize your client to access to their account information.(Most likely, your client's first user is yourself. If so, authorize your client to access to your own Twitter account).
3. Get OAuth token and secret to access to the account information of your Twitter client users.
Keep entering the below on the irb session:
require 'twitter' oauth_verifier = "(a number shown on the user authorization screen)" access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier ) token = access_token.token secret = access_token.secret Twitter.configure do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.oauth_token = token config.oauth_token_secret = secret end Twitter.update("Hello World!")
Congratulations! Now you should be able to see a tweet with "Hello World" posted to the authorized account.
1 comment:
Thanks a lot for this tutorial, literally saved me hours of frustration!
Cheers,
Post a Comment