To get started, you currently need my versions of the em-http-request and the oauth gem for this to work. They are available at:
So, download, build and install them. Next, you can do the following: (using twitter as an example):
To get started, you currently need my versions of the em-http-request and the oauth gem for this to work. They are available at:
So, download, build and install them. Next, you can do the following: (using twitter as an example):
require 'rubygems' | |
require 'em-http' | |
require 'oauth' | |
# At a minimum, require 'oauth/request_proxy/em_http_request' | |
# for this example, we'll use Net::HTTP like support. | |
require 'oauth/client/em_http' | |
# You need two things: an oauth consumer and an access token. | |
# You need to generate an access token, I suggest looking elsewhere how to do that or wait for a full tutorial. | |
# For a consumer key / consumer secret, signup for an app at: | |
# http://twitter.com/apps/new | |
# Edit in your details. | |
CONSUMER_KEY = "" | |
CONSUMER_SECRET = "" | |
ACCESS_TOKEN = "" | |
ACCESS_TOKEN_SECRET = "" | |
def twitter_oauth_consumer | |
@twitter_oauth_consumer ||= OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, :site => "http://twitter.com") | |
end | |
def twitter_oauth_access_token | |
@twitter_oauth_access_token ||= OAuth::AccessToken.new(twitter_oauth_consumer, ACCESS_TOKEN, ACCESS_TOKEN_SECRET) | |
end | |
EM.run do | |
request = EventMachine::HttpRequest.new('http://twitter.com/statuses/update.json') | |
http = request.post(:body => {'status' => 'Hello Twitter from em-http-request with OAuth'}, :head => {"Content-Type" => "application/x-www-form-urlencoded"}) do |client| | |
twitter_oauth_consumer.sign!(client, twitter_oauth_access_token) | |
end | |
http.callback do | |
puts "Response: #{http.response} (Code: #{http.response_header.status})" | |
EM.stop_event_loop | |
end | |
http.errback do | |
puts "Failed to post" | |
EM.stop_event_loop | |
end | |
end |
Edit in your details and run - it should post your glorious tweets to twitter!