Cutting teeth with Facebook Pages and Apps

Facebook

I’ve just spent the last few hours discovering the ins and outs of Facebook Apps and Pages and I’ve learned a lot! So below are a few fast facts for anyone who feels like getting knee deep in the social networking pool.

1. Facebook uses its own markup called FBML. It’s pretty much a HTML but with a few minor differences, e.g. it likes you to use in-line styles, it doesn’t play well with javascript and introducing an iFrame is near impossible.

2. If you’re making a page then the FBML app is a very handy install. It is however a little limited in what it’s able to do. If you want to stretch you legs a little more then you’ll need to start thinking about developing an app.

3. If you decide making an app might be more useful to you then you’ll need to be ok with the idea that anyone will be able to install your app. This can make apps very useful for promotional material but not suitable for everything.

4. Apps have a huge Facebook API that you can use to make the most of them but there are a few pit falls. When you start to design an app you need to decide whether you want Facebook to use FBML or an IFrame. For the life of me I couldn’t work out which was more preferable as the result seemed to be just about the same. If you choose an iFrame your page will be able to stick with a more conventional form of markup but it might exclude you from taking full advantage of some of the custom Facebook code that’s on offer in FMBL.

5. Whichever method you choose, you’ll need to create a file on your web server which you can point the Facebook app at. This file will have FBML in it (or possibly XFBML if it’s an iframe) which Facebook will process for you. When you publish your app it will be fully viewable and functional at http://apps.facebook.com/your-app-name/ HOWEVER if you want the app to appear as a Tab then you might find you’ll come across a few errors. It seems that forms and iframes aren’t kosher in the Facebook tab section. There is A LOT written on the topic but very few effective implementations that I’ve seen.