Specifically, writing a Facebook application to “fully utilize the suite of integration points and deliver a full user experience” (as the Anatomy of an App page suggests) is really hard.
There are two kinds of Facebook application:
- Use an iframe to display your HTML-based web application, and only integrate loosely with Facebook
- Use the Facebook Markup Language (FBML) and API to write your application, this should integrate tightly with Facebook, making use of the Feed Wall, notifications and other Facebook features
This week we’re aiming to do the latter, and hoping to learn a lot of new stuff along the way. Unfortunately for us, all of the ‘getting started’ guides are based around the first type of application, and don’t give any real help if you’re trying to do more.
The resource that gets linked to from all the guides is the Facebook Developer Wiki but so far we’ve found it to be misleading, inaccurate and having an excessive number of typos in the code examples. This could be due to the fact that they’re in the middle of switching to the new profile design, which also means a change in functionality, reference terms and API calls, but even given this the lack of an introductory guide seems a startling omission.
So instead we’ve worked with the “Smiley” sample application, which uses the same integration points that we’re hoping to make use of. This has given us some useful hints, but necessitates constant reference to the previously-mentioned documentation which, as someone else in the team has volunteered, is “incomplete at best”.
Even copying and pasting code directly from the sample application doesn’t always work, but a huge problem has been calling API methods which neither work, nor throw exceptions, bringing user interaction to a halt and making for a very frustrating development experience.
Normally a stop at the forums would be what’s needed, but here is what a blogger had to say about that:
“Do you spend much time on the forums? There are … a handful of 5-6 “old timers” who post inside jokes and complain about how hard it is these days.
There is essentially zero sharing of information or expertise going on. It’s really a no-man’s land at this point.”
So, two days in, and dealing with FBML, the Facebook API and the low quality of the documentation has felt very much like playing a Grand Master at chess, only he won’t tell you the rules.
None of this is to say that we haven’t made progress of course (because we have!), but it has meant we’ve had to revise our initial plans to take account of what we’re finding possible to do within a week.