= Fakebook
Fakebook simulates the Facebook platform, to aid in developing Facebook canvas apps offline.
It takes a request and passes it to the app as a POST with the fb_sig_* params added, etc.
The response is returned with FBML parsed (sort of) and some chrome added.
In other words: you can work on Facebook canvas apps when you're on a plane.
To use, run 'fakebook' from the command line to start up a Fakebook proxy. For example, if you
have an app running on port 3000, and the callback path is "/", and the canvas path
is "myapp", you would run:
$ fakebook --callback="http://localhost:3000/" --canvas="myapp"
See "fakebook --help" for more options. By default, Fakebook will look for a config file at
./config/fakebook.yml. The file should look like this:
callback: http://localhost:3000/
canvas: myapp
secret: secret
user: 1
session: session_key
friends: 2, 3, 4
host: 0.0.0.0
port: 5000
You can also use the library directly with the Fakebook class, which eases testing:
require 'fakebook'
app = Fakebook.new :callback => "http://localhost:3000/",
:canvas => "myapp",
:secret => "secret",
:fb_params => { :user => 1, :session_key => 'session_key', :friends => [2, 3, 4] }
app.request("/")
Because Fakebook implements #call according to the Rack
specification[http://rack.rubyforge.org/doc/files/SPEC.html], you can create an HTTP server
that proxies to your application using your choice of server library (Mongrel, WEBrick, Thin,
etc.) For example:
require 'fakebook'
app = Fakebook.new # etc...
Rack::Handler::Mongrel.run app, :Port => 5000
== Getting started
To install via RubyGems:
$ sudo gem install sco-fakebook --source http://gems.github.com/
Run the executable to see the available options:
$ fakebook --help
To install the development version from the repository:
$ wget http://github.com/sco/fakebook/tarball/master
$ tar -xvf sco-fakebook-master.tar.gz
$ cd sco-fakebook-master
$ sudo rake install_gem
== Dependencies
Ruby
Rack >= 0.3.0
== Author
Scott Raymond sco@scottraymond.net
Thanks to PackRat[http://apps.facebook.com/packrat/], from which this code was extracted.