Giving Rails the Big 'F': Surviving Facebook Integration Unscarred

“If you want a vision of the [Facebook], imagine a boot stamping on a human face – forever.” — George Orwell

Sooner or later, someone will ask you to write a Facebook app.

Scrabulous. Free Rice. Whopper Sacrifice. Some of the most wildly successful web apps of the last few years have been built on the Facebook development platform. With its enormous built-in audience and rich API for accessing its users’ info and helping them communicate, startups and giant multi-national corporations alike see Facebook as an enormous opportunity.

For developers, it looks more like a screaming nightmare. Their APIs shift with little notice and are often broken. They offer a series of nearly indistinguishable API options (a “Canvas App” or a “Page App”?) that each have different gotchas. Their use of proprietary markup languages (FBML and FBJS) and (shall we say) unusual use of HTTP verbs present a challenge to maintaining a productive local development environment.

In this session, I’ll lead you on a humorous romp through some of the more frightening corners of this nightmare world before showing how to make your way back to the calm and beautiful idyll you’ve come to expect from Rails development. I’ll impart the hard-won lessons, I’ve learned building Facebook applications with Rails for big national brands including techniques for removing the worst pain points in the Facebook development process by letting you actually run your app locally. I’ll also cover how to prevent the problems with Facebook from infecting the rest of your application. I’ll survey the current state-of-play in Facebook libraries for Rails and present some of the recipes that have been most successful.

Greg Borenstein

Grabb.it (http://grabb.it)

Greg Borenstein works at StepChange Group, a social media and social application development firm in Portland, Oregon. He is the author of a number of RubyGems, including a Ruby wrapping of the Amazon Thumbnail API (thumbnail.rubyforge.org) and RAD (rad.rubyforge.org), a framework for programming the Arduino open source physical computing platform in Ruby. In his spare time, Greg plays indie rock and organizes PDX Pop Now!, a free all-ages Portland music festival and non-profit organization. Ruby was the first programming language he ever learned.

Comments

Joel Shapiro

05/07/2009 6:06pm PDT

Overall, a helpful presentation with lots of interesting details. Thanks for the pointers.

Just one point, and I mean this in the nicest, most respectful manner, so please accept it as constructive criticism in that spirit of goodwill. Maybe keep your tone a bit more formal during presentations like this . . . We all want to listen to a friendly speaker that feels approachable, but the tone was a bit more like what we’d expect chatting to a buddy in a bar or something. I’m not trying to be picky or sound like an old man, but I think you’ll reach out across generations a bit better if you speak a bit more carefully and formally in your professional presentations. Again, this is just a friendly suggestion, no ill will meant.

Good luck with everything!

Mark Yoon

05/06/2009 12:03pm PDT

Thanks for the presentation. It can be hard to find the balance of detailing quirks and remaining positive and easing us into the API. I would have appreciated more of the latter.