Learning the Facebook API

For the past few months I've been working on web apps. The first was a mobile site based on jQuery Mobile. While it was "cool", it quickly dawned on me that it wouldn't get any significant usership. For one, it was like a clone of 4square and Scvngr - and who really uses that? I'd peer into the lists of checkins, and it wasn't looking too encouraging. People use it when they're bored and alone, and my scenario didn't involve either of those situations.

Doing a standalone website - it's a good way not to be noticed. You can spend a ton of time on a website, and promote it heavily, and get 4,000 pageviews. That's kind of sad, because you can do a lot less work on Facebook, and get half that many - and at least have a shot at going viral.

So I looked at Facebook apps. A fb app is a small website that runs inside an iframe on fb. They generally try to act like extensions to fb, and manage the posting of information into the facebook site. They also integrate fb data into the app's pages. These actions are managed through the fb SDKs, which are a front end to the Graph API. The Graph API allows you to read data from all the fb data structures.

Somewhat parallel to the fb app are websites that use fb social plugins. The plugins are the widgets like the "like" button or the activity box. These sites will authenticate with fb as well, to link up a site user with a fb user, so the widget contents can be customized. Websites can also use the Open Graph protocol to add metadata to pages so fb can "read" the pages, and put the information into the fb database.

There are some legacy APIs from the early days of apps, and they should be ignored. The APIs have changed a lot, mainly as FB and the developers have learned about what works for users (and advertisers). Things that seemed like a good idea, like FBML, turned out to be dead ends. So it's important to know what's obsolete.

I just threw myself in, wrote Strike Network, and saw it (basically) not go viral. Maybe it'll get some lift with the news - but it's not inherently viral.

It's also not constructed to be a viral application, as I've learned from using more fb apps. FB provides a lot of software to integrate your code and site with theirs. They have a specific, familar set of UI elements that it's best to use. Learning these are also a part of learning to make the application.