facebookrb 0

Simple Facebook API client and middleware

= facebookrb

Facebookrb aims to be a lightweight yet fully featured client for the {Facebook API}[http://wiki.developers.facebook.com/index.php/API], drawing on the best features from existing Ruby Facebook libraries. The functions and features are intentionally kept simple, so you can spend your time reading the official Facebook documentation rather than learning how the code works.

== Installation

gem install facebookrb

== General Usage

The easiest way is to use the middleware. Put this in your config.ru, Sinatra application, or wherever you declare middleware:

require 'facebookrb'

use FacebookRb::Middleware, :api_key => "APIKEY", :secret => "SECRET"

This will create a Facebook API client, populate it with any parameters from Facebook, and store it in the Rack env for you.

fb = env['facebook.client']

Make a call using short or long format (thanks tmm1/sinbook for the short version)

user = fb.users.getInfo('uids' => '123235345', 'fields' => ['name', 'sex', 'religion'])
user = fb.call('users.getInfo', 'uids' => '123235345', 'fields' => ['name', 'sex', 'religion'])

This call parses the JSON from Facebook and returns the resulting objects (a Hash, Array, String, or Integer depending on how complex the JSON is). The raw text of the response is also available:

fb.call(...)
fb.last_response

If you received params from Facebook, and they are {valid}[http://wiki.developers.facebook.com/index.php/Verifying_The_Signature], then you can access them:

fb.params['user']
fb['user']  # Also works

The ‘session_key’ param will automatically be passed forward to any API calls if available.

== Options

The options for the middleware and the client are identical, and are values you get from Facebook:

:api_key, :secret, :canvas_url

== Features

=== Facebook Connect

The library supports reading parameters from cookies, so Connect support should be there (not thoroughly tested ATM).

Extra Info: * {Facebook Connect}[http://wiki.developers.facebook.com/index.php/Facebook_Connect]

=== Batching

The batch call will return an array of the results of each call made inside the block:

app_info, user_info = fb.batch do 
  fb.application.getPublicInfo(...)
  fb.users.getInfo(...)
end

Extra Info: * {Using Batching API}[http://wiki.developers.facebook.com/index.php/Using_Batching_API] * {batch.run}[http://wiki.developers.facebook.com/index.php/Batch.run]

== Potential Features

These would all be easy to add if anyone needs support for them.

== Acknowledgements

The code for this project was initially derived from: * {sinbook}[http://github.com/tmm1/sinbook] * {MiniFB}[http://github.com/appoxy/mini_fb] * {rack-facebook}[http://github.com/carlosparamio/rack-facebook] * The official Facebook PHP library

Contributors: * {hanklords}[http://github.com/hanklords]

Related Repositories

facebookrb

facebookrb

Simple Facebook API client and middleware ...

facebookrb

facebookrb

Simple Facebook API client and middleware ...


Top Contributors

treeder mislav davidhq jsmestad