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
  • How VoIP is Transforming the Healthcare Industry

    The healthcare industry, like many industries, is in the midst of an era of rising costs and an ever increasing pressure to drive down expenses. Now, what if we were to tell you that there was a simple solution to these problems? The answer is VoIP. And to make it sweeter, it allows for your hospital staff to utilize modern mobile devices as resources instead of antiquated phone systems. more

  • Don't Make These 10 CRM Mistakes

    Finding and buying a CRM is exciting. It is also quite daunting as you want to be as prepared as possible so as to avoid making a costly mistake. We have seen that many businesses fail when implementing a CRM, as they repeatedly make the same errors over and over again. more

  • Video Conferencing Goes to Court

    Think technology can’t be utilized in the courtroom? Think again. Video Conferencing within the court system can be extremely cost-effective, efficient, and time-saving. Courtrooms can benefit greatly by video conferencing in expert testimonies, translators, witness testimonies, and much more. more

  • Can Gamification Improve Contact Center Performance

    We have all heard the phrase "all work and no play". Well, would you believe us if we were to tell you that by implementing gamification you can INCREASE contact center engagement, morale, and overall performance? Spoiler alert: 89% of contact center employees believe that a point system within their contact center would boost their engagement! more

  • [Infographic] 8 Common Pain Points UC Eliminates

    Every company has moments of frustration, it is when these moments become extended periods of inefficiency, or pain points, where we start to see loss in productivity and employee morale. What truly sets a successful business apart from those of its competitors, is how they take these pain points and use them as opportunities to improve upon procedures and systems to eliminate pain points and move beyond what was the status quo. more