On May 24, 2007, the world changed forever when Facebook CEO Mark Zuckerberg announced that Facebook was opening its platform, or “social graph,” to developers (see http://www.facebook.com/press/releases.php? p=3102). This update would allow developers to access a wealth of information, from names and birth dates to friend information and the ways that users link together. Never since the invention of the web browser has an API made such an impact on the world. For many, Facebook has become the web browser for the social Internet.

Since Zuckerberg’s announcement at the F8 conference, software developers around the world—including myself—have rushed to be the first to make their millions in a literal gold rush not seen since the dot-com boom. In a matter of days, we have watched our applications go from zero to millions of users. The Facebook Platform has opened up a wealth of knowledge to us as developers. The API gives developers the flexibility through PHP, Java, Perl, Ruby, .NET, and virtually any other language to access user information through a simple REST interface. A data access language called Facebook Query Language (FQL) allows simple SQL-like statements to retrieve information through that API. The Facebook Data Store API gives developers a location in which to store their regularly accessed data. A JavaScript™ client library allows client-side access to the API, requiring only simple HTML to render data from Facebook. On top of all that, Facebook released the Facebook Markup Language (FBML), which lets you render data on a page without the need to always access the API.

Each one of these aspects of the Facebook Platform could warrant its own book. FBML Essentials is intended to be your guide to perhaps the most important and basic component of the platform, FBML.