can anyone tell me why connecting to twitter using curl works and with
twitter-stream it doesnt (i am using the example code from the gem
website on github:
i was working on torquebox beer_tweets example; however i cant populate
my database with anything (except using jruby -S rake db:seed for fake
data)
using curl:
echo ‘track=software,ruby,rails,grails,torquebox,spring,tomcat,jboss’ >
track.in
curl -d @track.in https://stream.twitter.com/1/statuses/filter.json
-uUSERNAME:PASSWORD
everything works:
however when using twitter-stream; i get rejected (something with ssl;
however, i dont know why the curl client works):
require ‘rubygems’
require ‘twitter/json_stream’
username=‘user’
password=‘password’
username=ARGV[0] if ARGV[0]
password=ARGV[1] if ARGV[1]
auth=“#{username}:#{password}”
puts “running twitter with auth => #{auth}”
EventMachine::run {
stream = Twitter::JSONStream.connect(
:path => ‘/1/statuses/filter.json’,
:auth => auth,
:method => ‘POST’,
#:ssl => true,
:content =>
‘track=software,ruby,rails,grails,torquebox,spring,tomcat,jboss’
)
stream.each_item do |item|
$stdout.print “item: #{item}\n”
$stdout.flush
end
stream.on_error do |message|
$stdout.print “error: #{message}\n”
$stdout.flush
end
stream.on_reconnect do |timeout, retries|
$stdout.print “reconnecting in: #{timeout} seconds\n”
$stdout.flush
end
stream.on_max_reconnects do |timeout, retries|
$stdout.print “Failed after #{retries} failed reconnects\n”
$stdout.flush
end
trap(‘TERM’) {
stream.stop
EventMachine.stop if EventMachine.reactor_running?
}
}
puts “The event loop has ended”