So you want to build a facebook application, now what?
Posted Friday, January 16th, 2009 at 5:40 pm by Taylor Snook (3 posts)
Recently I launched my second facebook application called Feed the Pig and I figured I should take some time to share some of the lessons I learned and guidelines I’ve developed for making facebook applications. This post is the first of a series I plan to write in the coming weeks so stay tuned. A lot of the terminology that is used in this post is explained here.
- Keys to success
- Considerations and Cautions and Lessons Learned
- Structure/Pages (application Map)
- Permissions/Privacy
- Hosting
- Useful Links
- Useful Blog Posts
Keys to Success
Keep in mind why people tend to join facebook in the first place. Most users want to keep her/his friends and family updated on her/his lives. Users also want to keep in touch/keep track (perhaps stalk) one another. Facebook is a *social* network so you should design your application with that in mind. If your application doesn’t encourage users to share and interact with one another than maybe facebook is not to right place for it. Above all you need to make your application spreadable and continuously engaging.
- Make it easy for your current users to share with her/his friends
- Post your user’s actions to her/his feed.
- Design your application so that users can engage her/his friends, post things to either her/his friends profiles or her/his own, send requests to friends that will link her/him to the app.
- Don’t let your facebook application be just a passing fad. Many applications on facebook although exciting at first lose their luster after a user has tapped into all of the applications features.
- By updating your application with new features and content you can keep your users engaged and your application feeds going which is basically free advertising for your app.
- For non-profits, Facebook applications can be a great way to get users involved in a cause, provide her/him with a dashboard of tools to take action, and keep her/him posted about news and upcoming events. Email your users. If a user gives the application permission to change her/his status that is another great way to spread important updates about your cause. And again make sure you provide users with the tools to involve her/his friends.
- Here is very useful marketing post
10 tips for releasing your Facebook application, and maximizing growth
Continue on to Considerations and Cautions after the jump…
Considerations and Cautions and Lessons Learned
- Make sure your developer is familiar with the API and one of the official language libraries. I strongly recommend PHP which is one of the two official Facebook API libraries, the other being javascript. The unofficial libraries are ASP.NET, ASP, (VBScript), Cocoa, ColdFusion, C++, C#, D, Emacs Lisp, Java, Lisp, Perl, Python, Ruby on Rails, VB.NET, and Windows Mobile.
- Although I never encountered a CSS issue that could not be resolved, often time’s original html/css will act funny when rendered inside facebook. You should allow time for CSS debugging.
- Same thing with JS. Most tasks I was able to work out once I became familiar with FBJS. There are limitations with FBJS is that it does not allow you to use all javascript functions.
- Issues pulling referring URLs
- Directory approval typically take a week but could be longer.
- Since the release of “new facebook” an application cannot add anything to the profile box without user approval and so far the only way to prompt this is for a user to click on a link/button. Once prompted the user must choose to add the box to the Wall tab (deign required), Boxes Tab (if designed), its own Tab (if designed).
- Allowing uploads can be tricky and the approach needs to be considered carefully.
- Admin pages and logic configurations can add complexity so take this into consideration when budgeting time.
- Once you publish your application I strongly recommend creating a development application that will not be published. This way you can test any changes and updates to your application within the facebook environment without breaking your application.
Structure/Pages
Do you want your application to be used by individual users or for pages (Page is designed for local businesses, brands, musicians, and all types of organizations), or both? There are two kinds of pages Canvas pages and Profile Boxes/Pages. Here are some examples of pages you should strongly consider having and pages that are required(*).
For canvas pages: about page*, main*, landing page*, uninstall page*, admin, help, terms of service, and a page to invite friends.
For profile boxes/pages: Wall* (this is where the app is added by default), Wide (lives in the boxes tab), Narrow (lives in the boxes tab).
I will provide a lot more information about the structure and content of these pages in a future post.
Some questions to consider:
- Who will be maintaining your application?
If a developer is building an application for a client, they made need to build an administrative side to their application. That way application admins can edit the content of the application without going through the developer, like a CMS. - Will your canvas pages be using the Facebook Markup Language (FBML) or iframes?
Personally I really like to take advantage of the FBML to I tend to shy away from iframes because you cannot use FBML within iframes. However, there are several pros to using iframes. Mainly, I have found the load time for canvas pages can be significantly slow at times regardless of server speed. Iframes allow you load and change content within your application pages significantly faster. Common issues with iframes are listed here.
Permissions/Privacy
It is important to respect the privacy of your users. By adding any application on facebook a user is giving that application full access to almost all of the information listed on her/his profile. For a full list of all the information the application has access to see the response to the Users.getInfo API function call here. NOTE: facebook will never give out a user’s email or the street level of a users address.
Consider who will be allowed to access various pages of your app?
- Any internet user
- People logged into facebook
- People logged into facebook and have allowed application to access her/his information
- Once the user has done this she/he have added the application but it has not been added to her/his profile box
Useful examples of available logic, to control what logic is displayed (*requires user to allow access):
- Is viewer an application user, meaning have she/he granted permission
- Is viewer friends with the application user
- Is viewer the application user themselves
- Is viewer a specific user based on userID*. This is needed in order to create admin pages.
Hosting
You have two options for hosting your application, using your own server or using a hosting service. Both my applications are hosted on php servers with MySQL databases. A list of hosting providers and companies that have partnered with facebook are Microsoft Developer Tools, Free Hosting from Joyent, Amazon Web Services, Audible Magic, SalesForce. The server requirements are explained in detail here.
Useful links:
- Creating your first application
- Facebook partners/hosting services
- Privacy Settings available to users
Useful Blog Posts:
- Tech: How to Develop a Hit Facebook App: 29 Essential Tools and Tutorials
- Tech: Facebook Application Development How-to: 11 Tips You Don’t Want to Miss
- Tech: 5 Development Tips for the Facebook API
- Tech: 5 Facebook Application Gotchas
- Tech: 10 Things That Would Have Been Nice to Know When Starting My Facebook Application
- Marketing: 10 tips for releasing your Facebook application, and maximizing growth
