It’s still Christmas for a few more hours and as my thoughts return to development (the last two weeks of the year are often my most productive) I’m hoping that Santa is getting ready to deliver a new API for Facebook. My hopes are up because when Facebook bought FriendFeed, they brought on board a couple of guys who know how to craft an API that works. And from what I hear they’re working on APIs for Facebook now.
What I look for in an API is simplicity, efficiency, and having all the bases covered. I don’t want to hit dead ends but I also want to reach “Hello World” in minutes, maybe even seconds. The FriendFeed API sure qualified on both counts.
So here’s what I’m looking for, Santa — in a new Facebook API.
1. It should be brain-dead easy to hurl a link at Facebook the same way I do it for Twitter. I have a simple entry point in my environment called twitter.newpost, it takes a string and a bunch of optional metadata. If I want to say Hello World to Twitter it’s just twitter.newpost (“Hello World”). And the XML that goes over the wire isn’t much more complicated.
2. These days the Facebook timeline is so much like Twitter’s, you might as well do what WordPress and Tumblr did, and implement the Twitter API. Obviously some of the limits would have to be relaxed because Facebook items aren’t limited to 140 characters. I know this is bound to be controversial, but maybe it’s just the nudge the guys at Twitter need. Besides, the advantage of supporting the Twitter API is that the lovely folk at Tweetie, Twidroid, Tweetdeck, etc will all work with Facebook. Then Joe Hewitt can get busy working on other stuff!
3. The FriendFeed realtime API. Please implement it on Facebook scale. It would change the planet.
4. Metadata everywhere. I want a fully open architecture for adding metadata. No need to get approval from anyone to add a few extra bits to a message. This will unleash huge classes of applications that flow through Facebook’s servers. A platform with the richness of desktop operating systems running at Internet scale.
5. I want to hook up RSS feeds to Facebook. You should poll them at least once an hour, and support all common realtime protocols, including rssCloud, Pubsubhubbub and SUP. If something else pops up support it too.
That’s what I want for now. Probably a million things come after this, but let’s start here!