RFb
RubyFacebook - interact with Facebook REST API (json) - rails3 enabled
Share datas with Facebook via JSON with RFb! No XML to deal with, no parsers needed, reduced verbosity, increased happiness. Ruby1.9 required.
Installation
gem install RFb
Bundling
to bundle RFb, in your Gemfile:
gem 'RFb', :require => 'r_fb'
Configuration
configurations in yml file soon will come...
Rails 3
- add RFb to your Gemfile
- install it (bundle install)
- create a new initializer file (say 'facebook.rb') and add some configurations:
config/initializers/facebook.rb :
require 'r_fb'
RFb.app_name = "your_app_name"
RFb.environment = Rails.env
RFb.api_key = {
development: "your_facebook_api_key_here",
test: "",
production: ""
}
RFb.secret_key = {
development: "your_facebook_secret_here",
test: "",
production: ""
}
RFb.debug = true # displays
and you're done!
Basic Usage
See the facebook REST API ( http://wiki.developers.facebook.com/index.php/API ) so you can see what methods are available and how to call them.
Example:
To get some user information:
fields = %w(username name first_name has_added_app locale pic profile_url status timezone)
RFb.request({
method: "facebook.Users.getInfo",
uids: [1218562195].to_s,
fields: [fields].to_s
})
result:
[{"first_name":"Francesco","name":"Francesco Canessa","pic":"http:\/\/profile.ak.fbcdn.net\/v22940\/158\/98\/s1218562195_9493.jpg","status":{"message":"","time":0,"status_id":0},"timezone":1,"uid":1218562195,"has_added_app":true,"locale":"en_US","profile_url":"http:\/\/www.facebook.com\/makevoid","username":"makevoid"}]
a shorter version:
User.new(fb_id: 1218562195)
Setup sessions
build better rails3 controllers-model api and document... I'll create an example project
Getting friends
RFb::User.new(fb_id: @current_user.fb_id).friends
result (an array of users properties):
[{"current_location"=>{"city"=>"Buffalo", "state"=>"New York", "country"=>"United States", "zip"=>"14623"}, "first_name"=>"Ali", "name"=>"Ali Babloo", "pic"=>"http://profile.ak.fbcdn.net/v230/1615/8/s1027654249_4327.jpg", "status"=>{"message"=>"", "time"=>0, "status_id"=>0}, "timezone"=>-8, "has_added_app"=>true, "locale"=>"en_US", "profile_url"=>"http://www.facebook.com/dark14horse", "username"=>"dark14horse"}, {..........}, {...}]
more docs will come when session handling API will be solid enough!
Look at the source code and see that is pretty simple stuff, so fork it, change it, get inspired and roll your own... simply do whatever you want!