public
Description: Simple Facebook platform simulator, to aid in developing Facebook canvas apps offline.
Homepage: http://github.com/sco/fakebook/
Clone URL: git://github.com/sco/fakebook.git
Click here to lend your support to: fakebook and make a donation at www.pledgie.com !
name age message
file .gitignore Wed Mar 12 15:05:24 -0700 2008 first commit [sco]
file LICENSE Thu Mar 13 16:59:57 -0700 2008 cleaned up comments and TODO [sco]
file README.rdoc Thu Jul 17 16:16:58 -0700 2008 cleanup [sco]
file Rakefile Loading commit data...
file TODO
directory bin/ Wed Apr 09 10:08:25 -0700 2008 improving static file handling, and changing so... [sco]
file fakebook.gemspec
directory lib/
README.rdoc

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, 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, from which this code was extracted.