Developers See A Welcoming Facebook

Updated: July 11, 2007

The latest version of the Facebook Platform, announced on May 24 at the Facebook Developer Conference delivers on both counts. It includes a well specified set of APIs, and access to a ready-made audience looking for applications that take advantage of an existing social network. "The Facebook platform is a set of web services that allow people to consume data as well as build apps for use by the Facebook community on Facebook," said David Fetterman, Lead Software Engineer for the Facebook Platform.

While other social networking sites like MySpace, Bebo and Windows Live Spaces already allow developers to build widgets that provide a limited amount of functionality, Facebook has gone much further in providing access to Facebook's core functionality and social networking features. "The idea is to make it as easy as possible for developers to build anything that we ourselves could create at Facebook."

Although the Facebook Platform draws the line at allowing you to completely eliminate the Facebook look and feel and build your own social networks like Ning, it is a platform in the true sense of the word. In fact, not only can developers extend existing apps such as Facebook's photo album or calendar they can actually replace them outright with something that works differently or better.

For the most part, Facebook has built its platform on well-established and easily understood web standards so developers won't have to reinvent the wheel when writing new applications or porting existing applications to the Facebook platform. In fact, developing for the Facebook Platform so resembles standard web development that developers will be up and running very quickly.

The Facebook platform includes a REST web services API that allows third party applications to programmatically interact with Facebook's systems at a very deep level.

Facebook's database query language, called Facebook Query Language (FQL) is an SQL-like language that will be immediately familiar to anyone who has ever worked with a standard relational database, while its text markup language, called Facebook Markup Language (FBML) is based on HTML.

Facebook has removed support for JavaScript for security reasons but has added new features that provide access to Facebook features, data, and even look and feel. You'll find familiar tags such as blockquote and table along with custom Facebook tags like fb:create-button, fb:friend-selector and fb:if-is-friends-with-viewer that illuminate the fact that Facebook is a social network. In fact, the Facebook platform could turn out to be a great way for developers to add social networking features to existing applications because they are already baked in.
Facebook's crown jewels, its data store, which includes user profile information and data from Facebook's own apps such as photos and calendar are fully accessible to developers. "You get a social network for free instead of having to roll your own," said Fetterman.

Facebook applications differ from MySpace widgets in one other crucial way. Where MySpace has been shutting down third-party widgets that encroach upon functions it would rather own, Fetterman is adamant that he'd be happy even if all of Facebook's applications were replaced.

Developing on Facebook

According to Fetterman, building a Facebook app is just an extension of basic web programming principles that require the display, logic, and data to be maintained separately. For the most part, developers can use the same HTML they have already developed. Since the app runs on the third-party server and not on Facebook proper, you maintain you own user id key identifier and business logic. Porting an app can be as simple as adapting your HTML to FBML by stripping out any JavaScript and adding Facebook-specific tags to support social networking.
Facebook is not alone in going beyond mere web applications by turning its entire system into a programmable platform. Google in particular has been quite aggressive in publishing APIs and providing deep hooks into its underlying infrastructure. However, when compared to other social networking sites like MySpace and its widget play, the degree to which you can integrate your own apps with Facebook is unprecedented. Not only can your apps consume data from Facebook, they can run anywhere on the Facebook canvas. So tightly weaved into the Facebook experience are third-party apps, that it is difficult to tell where Facebook ends and third-party apps begin.
No matter how well-programmed your web 2.0 app is, its no good unless people are using it. Facebook's network effect is of particular interest to developers. Not only does Facebook provide an applications directory where users can browse through and add third-party apps with a click, it also allows applications to spread in a more viral manner. Added apps show up in a news stream on users profiles and it is simple to add it to your own.

In the short time since Facebook introduced the platform, there has been an explosion of third-party applications -- a testament to Fetterman's claims of ease of porting. Developers range from Amazon and Microsoft to smaller companies like Slide, Box.net, and iLike alongside social media sites like Digg, Flickr, and Last.FM. Increasingly, Facebook is beginning to look almost like an alternate web. Also popular are unforseen social apps such as X Me that let you add "actions," such as think, pinch, or punch to your profile. Or, (fluff)Friends, which brings the tamagotchi craze to the web by letting you add a virtual pet to your profile. The Washington Post provides a good example of how social networking can enhance content. Instead of just providing article links (so very web 1.0) it's "Compass" feature polls users' political opinions and shares them with their Facebook friends who are also invited to participate. Results are displayed on a map that is available to your network of friends. Similarly, Flixster lets you add your own movie ratings and reviews to your profile and share them with friends.

Along with this, another important community has emerged--developers willing to share client libraries and code samples.

Some of the smaller developers were unprepared for the hit on their servers when their apps came into contact with the Facebook community. The most popular applications saw as many as 850,000 users on day one. We'd like to see Facebook offer the ability to host apps on Facebook's own servers and Fettermen says they are looking at ways to address this. In the meantime, interested developers may want to investigate third-party hosting solutions such as Amazon's S3.

Featured Research
  • 2017 Contact Center Software Trends

    Did you know that, according to Forbes, 86 percent of customers will pay more for a better customer experience? Customer satisfaction is always a worthy business pursuit, but to identify customer preferences and exceed expectations, you must keep pace with innovations in the technology your customers are using. more

  • How to Select Contact Center Software in 9 Steps

    Your choice of contact center software will affect the future success of your business. Don’t leave this important decision to chance. This guide provides nine actionable steps for the selection process. more

  • [Infographic] 15 Questions to Ask When Selecting a VoIP Provider

    Deciding which phone system is right for your business can be difficult. With our VoIP technology blueprint, discover the top 15 questions you should ask VoIP vendors before you make a buying decision. more

  • 2017 Business VoIP Buyer's Guide

    In 2017, more business will transition to a VoIP phone system. If you are among them—or if you’ll be upgrading an existing VoIP system—you need to learn about the latest technologies and market trends. more

  • The Basics of Real Time Personalization

    Real-time personalization of the customer experience has been described as the holy grail of digital marketing. And the race is on. Gartner believes that by 2018, businesses that excel in personalization will outsell those that don’t by 20%. Though the benefits are clear, the path to get there is not. more