frankie icon indicating copy to clipboard operation
frankie copied to clipboard

Easy creation of Facebook applications in Ruby using plugin for Sinatra web framework that integrates with Facebooker gem.

= Frankie

Frankie (http://facethesinatra.com) is a plugin for the Sinatra web framework (http://sinatrarb.com) that allows you to easily create a Facebook application by using the Facebooker gem.

Written by Ron Evans (http://www.deadprogrammersociety.com)

Based on merb_facebooker (http://github.com/vanpelt/merb_facebooker) by Chris Van Pelt, which was based on the Rails classes in Facebooker (http://facebooker.rubyforge.org/) by Mike Mangino, Shane Vitarana, & Chad Fowler

2/20/2009 - Now updated to Sinatra 0.9 and facebooker thanks to mjfreshyfresh.

Thanks, everyone!

= Here is a very simple example application:

require 'rubygems'
require 'frankie'

configure do
  set_option :sessions, true
  load_facebook_config "./config/facebooker.yml", Sinatra.env
end

## facebooker helpers
before do
  ensure_authenticated_to_facebook
  ensure_application_is_installed_by_facebook_user
end

## the site
get '/' do
  body "<h1>Hello #{session[:facebook_session].user.name} and welcome to frankie!</h1>"
end

= How to use frankie

  • Install the frankie gem (which will install both Sinatra and Facebooker if you do not already have them) sudo gem install frankie

  • Create the application directories for your new app mkdir myapp cd myapp mkdir config

  • Put your facebooker.yml file into the /myapp/config directory, and set the values to your information. Here is a simple example of the file:

    development: api_key: apikeyhere secret_key: secretkeyhere canvas_page_name: yourcanvashere
    callback_url: http://localhost:4567 test: api_key: apikeyhere secret_key: secretkeyhere canvas_page_name: yourcanvashere
    callback_url: http://localhost:4567 production: api_key: apikeyhere secret_key: secretkeyhere canvas_page_name: yourcanvashere
    callback_url: http://yourrealserver.com

  • Make sure you have setup your Facebook application on the facebook site. Google "setup new facebook application" if you are unsure how to do this. I recommend starting with an IFrame application. A more advanced and cooler approach uses a tunneling script, which is included with Frankie. You do need to have "autossh" installed in order to use it, as well as a publicly addressable server. From a command prompt type tunnel <remote_port> <local_port> like this:

    tunnel app.myhost.com 10000 4567

You will also need to make sure your server's /etc/ssh/sshd_config contains the following line:

GatewayPorts clientspecified

Thanks to the many people like Evan Weaver, Blake Mizerany, and whoever else that have provided the code used in this tunneling script.

  • Create your application, based on the sample above, and then run it: ruby sample.rb

  • Test your app by going to http://apps.facebook.com/yourappname

Have fun!