Du brauchst:
- RubyOnRails Projekt
- eine leere Facebook Applikation
- Webserver (Vorrausetzung: du kannst dein RubyOnRails Projekt schon deployen)
public/index.html löschen und map.root in der config/routes.rb festlegen
Facebook Applikation Einstellungen:
Canvas Callback URL
http://example.com/
Connect-URL
http://example.com/
Canvas URL
http://apps.facebook.com/applikationname/
Use FBML
Facebooker installieren:
ruby script/plugin install git://github.com/mmangino/facebooker.git
im Ruby-Projekt eine config/facebooker.yml erstellen: Vorlage
api_key Dein API key von Facebook
secret_key Der Schlüssel deiner Facebook-Applikation
canvas_page_name Adresse deiner Facebook-Applikation
Ruby-Projekt-Einstellungen:
in der config/routes.rb muss canvas auf true gesetzt werden, damit die Applikation auf Facebook funktionieren kann
map.resources :articles, :conditions => {:canvas => true}
Nun ist unser Controller richtig verbunden, aber wahrscheinlich kommt dann der HTTP Fehler 406 beim Aufrufen der App (http://apps.facebook.com/applikationname/).
FBML wird nun mit Rails arbeiten können, aber die App kann trotzdem noch keine FBML-Seiten ausgeben. Nun müssen in den Controller-Dateien jedes format.html in format.fbml umgeändert werden.
Zum Beispiel: app/controllers/articles_controller.rb
def index @articles= Articles.find(:all)
respond_to do |format|
format.fbml # index.fbml.erb
format.xml { render : xml => @articles}
end
end
Der letzte Schritt ist nun alle view-Dateien umzubennen!
Also alle Dateien in den Unterordnern des views-Ordners von *.html.erb zu *.fbml.erb umbennen!
Und die im views/layouts liegende Datei ändern, denn Facebook mag keinen body-tag usw
Am Ende bleibt nicht mehr viel ürbig in der app/views/layouts/application.fbml.erb:
<p style="color: green"><%= flash[:notice] %></p> <%= yield %>
Deployen (auf den Webserver laden) und schon sollte die Applikation funktionieren!
--> Weitere Infos
Sehr sehr hilfreich für mich bettina!