views:

1161

answers:

5

I want to write a Ruby application through which:

  1. I can submit tweets to twitter.
  2. I can submit a post to facebook.
  3. I can manage real-time stats of tweets

Is there any twitter/facebook api for Ruby?

+2  A: 

The Twitter API is a RESTful web service. It's completely language agnostic. Use whatever language you want.

Not sure about Facebook.

Marc W
Facebook API is also RESTful.
Dave Swersky
+5  A: 

I use the Twitter gem and am quite happy with it.

For Facebook, there is the Facebooker gem.

Trevor
+3  A: 

Streams of tweets:

Tweetmon is a great gem for keeping real-time track of tweets. Here's an example of using it to get a stream of tweets on a specific keyword

 #!/usr/local/bin/ruby 

 if ARGV.size==1
   keyword = ARGV.shift
 else
   puts 'tweetmon usage: tweetmon <keyword>'
   exit 1
 end

 require 'yaml'
 require 'rubygems'
 require 'tweetstream'

 config = YAML::load(File.open(File.expand_path('~/.twitter')))
 user =config['username']
 password =config['password']

 TweetStream::Client.new(user,password).track(keyword) do |status|  
   puts "[#{status.created_at}-#{status.user.screen_name}] #{status.text}"
 end

To use this gem you need: gem sources -a http://gems.github.com gem install intridea-tweetstream

To submit a tweet is just a HTTP POST - doesn't need any extra libraries to do this.

cartoonfox
GitHub took down it's gem hosting quite some time ago, but if you have an updated RubyGems installation, you should be able to run `sudo gem install tweetstream`, if you get an error that the gem doesn't exits, try to run `gem sources -a "http://gemcutter.org"`.
dvyjones
+1  A: 

Two more libraries that didn't get mentioned yet:

Michael Kohl
A: 

If you're inclined to retain more control over how you use the Twitter and Facebook APIs you can use the Wrest gem.

Take a look at the facebook (http://is.gd/bJspX) and twitter (http://is.gd/bJsqV) examples.

Also, while both the Twitter and Facebook APIs are HTTP APIs, they are not RESTful despite their claims to the contrary.

Kai Wren