To create applications in Facebook, you first must add the Facebook developer application to your profile. You also must have access to a Web server where you can store your application -- Facebook does not host third-party programs. Applications can be Web-based, desktop-based or mobile-device-based. In other words, you can create applications that take advantage of the Facebook platform but aren't incorporated into member profiles. For example, it's possible to program an application that creates a window on your desktop that is linked to your profile's news feed.
Facebook says that its application programming interface (API) is based on a Representational State Transfer (REST) interface, a term coined by Roy Fielding in his Ph.D. dissertation at the University of California, Irvine. In a REST network, form follows function. Fielding's ultimate REST network was an idealized version of the World Wide Web that had independent components that worked together to maximize the efficiency of data transfers [Source: Fielding].
In terms of Facebook's API, a REST-interface means that applications interfacing with Facebook send method calls using Hypertext Transfer Protocol (HTTP) GET or POST requests. HTTP is the communications protocol used by the World Wide Web -- the GET request retrieves information and the POST request adds information to an existing Web page. This means that Facebook applications can retrieve information from member profiles, post messages to profiles or do both.
Developers can also use the Facebook Query Language (FQL), which is similar to Structured Query Language (SQL). Query languages are programming languages designed to retrieve information from databases. With FQL, a developer can obtain information about any user who downloads his or her application. In a way, that's really what Facebook applications are all about -- gathering information about users. Developers could use this information as a way to create target audiences for advertising or build a consumer base for a particular product. Facebook has been criticized by people who believe the site allows application developers to gather data from members, including personal information and Web surfing habits.
For those developers who want to create applications that deeply integrate themselves into Facebook's platform, there's the Facebook Markup Language (FBML). Facebook derived the language from HTML and added some site-specific tags. Using this language, developers can create applications that become a more integral part of the user's Facebook experience, affecting profile appearance and function.
Every application has a space on Facebook called a canvas page, which developers can use however they wish. When a user clicks on an application icon, his or her web browser goes to that application's canvas page. Developers can include Web advertising on canvas pages, sell products using a Facebook-designed interface or simply share information with the user.
In the next section, we'll look at how you can access Facebook through a mobile device like a cell phone.