5 questions to ask yourself before developing for Facebook Connect
Posted: September 5th, 2009 | Author: Pierre Olivier Martel | Filed under: Facebook, Rails | View Comments
I spent most of my summer developing a social web application for the salsa dancing community in Montreal. I realized this project in part for fun and in part to seek new business opportunities. The application relies heavily on Facebook Connect for authentication and events management. Now that the website is mostly done and online, I want to share my experience developing with Facebook Connect.
Over the course of the week, I will write one post a day about the following technical topics :
- Today: 5 strategies when developing with Facebook Connect
- Wednesday: Speeding up Tunnlr
- Thursday: Working with offline user’s data access
- Friday: Viral Facebook Connect application tips
Stay tuned if you’re planning on developing a Facebook application or are curious about this new platform. So let’s start with today’s topic, 5 questions to ask yourself before you kick off your project:
1- What will my interactions with the Facebook platform be? Are there API limitations?
If there was only one advice I could give you, it would be to read the Facebook API first. Your application will be limited in terms of what data it can access and how the data can be used. Knowing those limitations and how to get around them is essential.
As an example, I took for granted that I would be able to rsvp to events on Facebook on behalf of users. Turns out that when I carefully read the events API, rsvps would only work on events your application created. Now that was a real bummer that I could have managed earlier if I had read the API more carefully.
2- What will my authentication strategy be?
Facebook Connect provides a way to authenticate users on your website. But should you rely entirely on Connect or should you provide an hybrid registration process that lets the user choose whether they prefer to create a new account for your site or use their Facebook account?
My application relies heavily on Facebook Connect so I decided not to provide other means of logging on to the site. Turns out this was maybe not such a great idea since a lot of people still don’t know about Facebook Connect and are concerned with phishing scams when entering their Facebook credentials to log on to my site.
3- Which wrapper should I use?
The wrapper is the link between your programming language and the Facebook REST api. In the Rails world, Facebooker is the obvious choice. The gem is stable and great developers are working on adding new features and fixes each week. But still, the Facebook API changes quickly and you might find yourself wanting to use features that haven’t made their way to the gem yet.
In that case, I woud recommend forking the project on GitHub and using it as a git submodule plugin in your application. This way you can add the missing features yourself and ask for a pull request once its done and tested.
4- Facebook application or Facebook Connect?
While Facebook Connect is new on the scene, Facebook applications have been around for a few years now and Facebook user are used to them. But I somehow feel the golden age of Facebook applications is behind. Users got fed up with all the noise and newsfeed clogging from those applications and Facebook responded by moving them away in separate tabs. As a result, it has got a lot more difficult for an application to get noticed and go viral.
Facebook connect will give you a lot more freedom and independence, letting you use the Facebook platform without being trapped in it.
5- How will it go viral?
Viral marketing is still one of the best argument as to why you should not neglect Facebook in your marketing strategy. You need to make the best use of your users newsfeed so that your application gets noticed by a maximum of potential users.

Making your application go viral will be Friday’s subject.
What do you think of these tips? Do they make sense to you? Do you have a few others?
Passionate web developer living in Montreal and hacking in Ruby on Rails available for contracts and freelance work.