What Is Facebook?Full knowledge has the most important things that he has gone through

What Is Facebook?


Introducing the Facebook Platform Facebook (http://www.facebook.com) has grown phenomenally over the past several years from an Ivy League social web application to the second largest social web site on the Internet. The creators of Facebook have done an impressive job focusing their social software on the college demographic. In a natural progression of the social network, Facebook recently extended its network by developing a platform for developers to create new applications to allow Facebook users to interact in new and exciting ways. What Is Facebook? In 2007, Facebook launched its own platform for application development. The platform consists of an HTML-based markup language called Facebook Markup Language (FBML), an application programming interface (API) for making representational state transfer (REST) calls to Facebook, a SQL-styled query language for interacting with Facebook called Facebook Query Language (FQL), a scripting language called Facebook JavaScript for enriching the user experience, and a set of client programming libraries. Generically, the tools that make up the Facebook platform are loosely called the Facebook API. By releasing this platform, Facebook built an apparatus that allows developers to create external applications to empower Facebook users to interact with one another in new and exciting ways—ways that you, as a developer, get to invent. Not only can you develop web applications, but Facebook has also opened up its platform to Internet-connected desktop applications with its Java client library. By opening this platform up to both web-based and desktop applications and offering to general users the same technology that Facebook developers use to build applications, Facebook is positioning itself to be a major player in the future of socio-technical development. A Brief History of Facebook In 2003, eUniverse launched a new social portal called MySpace. This web site became wildly popular very quickly, reaching the 20-million-user mark within a year. Just a year 2 Introducing the Facebook Platform earlier, a bright young programmer named Mark Zuckerberg matriculated at Harvard University. The year in which MySpace launched, Zuckerberg and his friend Adam D’Angelo launched a new media player, called Synapse, that featured the Brain feature. Synapse’s Brain technology created playlists from your library by picking music that you like more than music than you don’t. Although this type of smart playlist generation is common in today’s media players, at its launch, it was an innovation. Synapse’s launch was met with positive reviews, and several companies showed interest in purchasing the software; however, ultimately no deals were made, and the media player never took off. Unfortunately (or fortunately, depending on your perspective), one of Zuckerman’s next projects created quite a bit more controversy. He created Facemash.com, a variant of the HOTorNOT.com web site for Harvard students. To acquire images for the web site, Zuckerberg harvested images of students from the many residence hall web sites at Harvard. Because Zuckerberg was running a for-profit web site and had not obtained students’ permission to use their images, Zuckerberg was brought before the university’s administrative board on charges of breaching computer security and violating Internet privacy and intellectual property policies. Zuckerberg took a leave of absence from Harvard after the controversy and then relaunched his site as a social application for Harvard students in 2004. The viral nature of the web site allowed it to grow quickly, and a year later Zuckerberg officially withdrew from Harvard to concentrate his efforts on developing what was first known as thefacebook.com. Relaunched as Facebook in 2005, the social network quickly expanded to the rest of the Ivy League. Soon after, Facebook expanded dramatically across university and college campuses across the nation. Facebook’s focus on the college and university demographic helped catapult it into what any marketing manager will tell you is the most difficult demographic to crack, the 18–24 young adult market. To keep its growing momentum, Facebook opened its doors to nonacademic users for the first time in 2007. Since this time, Facebook has grown to be the second largest social network with more than 30 million users. And with any growth comes opportunities both for the company and for its users. The Elements of the Facebook Platform As stated previously, the Facebook platform consists of five components: a markup language derived from HTML (Facebook Markup Language), a REST API for handling communication between Facebook and your application, a SQL-style language for interacting with Facebook data (Facebook Query Language), a scripting language (Facebook JavaScript), and a set of client libraries for different programming languages. I’ll cover these five elements in the following sections. Introducing the Facebook Platform 3 Facebook Markup Language If you’ve ever developed in ColdFusion or JSTL (or other tag-based programming language), you’ll find working with the platform’s Facebook Markup Language (FBML) very natural. If you’re new to tag-based programming, just think of FBML as fancy HTML tags, because each interaction starts and ends with a tag. However, to distinguish between HTML and Facebook commands, you prefix the tags with fb: as you would if you were using multiple DTDs/schemas in XHTML. By using the FBML tag set, Facebook abstracts a lot of complex code and makes many of the routine procedures almost effortless. For example, to add a link to your application’s help pages on your dashboard (the navigational tabs that go across the top), you simply need to add the following lines: Application Help REST API Calls Facebook API calls are grouped into eight action categories. These calls are really wrappers for more sophisticated FQL interactions with the Facebook back end but are useful bits of code that speed up the development of your application. These calls include the following: • facebook.auth provides basic authentication checks for Facebook users. • facebook.feed provides methods to post to Facebook news feeds. • facebook.friends provides methods to query Facebook for various checks on a user’s friends. • facebook.notifications provides methods to send messages to users. • facebook.profile allows you to set FBML in a user’s profile. • facebook.users provides information about your users (such as content from the user’s profile and whether they are logged in). • facebook.events provides ways to access Facebook events. • facebook.groups provides methods to access information for Facebook groups. • facebook.photos provides methods to interact with Facebook photos.
What Is Facebook?
earlier, a bright young programmer named Mark Zuckerberg matriculated at Harvard University. The year in which MySpace launched, Zuckerberg and his friend Adam D’Angelo launched a new media player, called Synapse, that featured the Brain feature. Synapse’s Brain technology created playlists from your library by picking music that you like more than music than you don’t. Although this type of smart playlist generation is common in today’s media players, at its launch, it was an innovation. Synapse’s launch was met with positive reviews, and several companies showed interest in purchasing the software; however, ultimately no deals were made, and the media player never took off. Unfortunately (or fortunately, depending on your perspective), one of Zuckerman’s next projects created quite a bit more controversy. He created Facemash.com, a variant of the HOTorNOT.com web site for Harvard students. To acquire images for the web site, Zuckerberg harvested images of students from the many residence hall web sites at Harvard. Because Zuckerberg was running a for-profit web site and had not obtained students’ permission to use their images, Zuckerberg was brought before the university’s administrative board on charges of breaching computer security and violating Internet privacy and intellectual property policies. Zuckerberg took a leave of absence from Harvard after the controversy and then relaunched his site as a social application for Harvard students in 2004. The viral nature of the web site allowed it to grow quickly, and a year later Zuckerberg officially withdrew from Harvard to concentrate his efforts on developing what was first known as thefacebook.com. Relaunched as Facebook in 2005, the social network quickly expanded to the rest of the Ivy League. Soon after, Facebook expanded dramatically across university and college campuses across the nation. Facebook’s focus on the college and university demographic helped catapult it into what any marketing manager will tell you is the most difficult demographic to crack, the 18–24 young adult market. To keep its growing momentum, Facebook opened its doors to nonacademic users for the first time in 2007. Since this time, Facebook has grown to be the second largest social network with more than 30 million users. And with any growth comes opportunities both for the company and for its users. The Elements of the Facebook Platform As stated previously, the Facebook platform consists of five components: a markup language derived from HTML



(Facebook Markup Language), a REST API for handling communication between Facebook and your application, a SQL-style language for interacting with Facebook data (Facebook Query Language), a scripting language (Facebook JavaScript), and a set of client libraries for different programming languages. I’ll cover these five elements in the following sections. Introducing the Facebook Platform 3 Facebook Markup Language If you’ve ever developed in ColdFusion or JSTL (or other tag-based programming language), you’ll find working with the platform’s Facebook Markup Language (FBML) very natural. If you’re new to tag-based programming, just think of FBML as fancy HTML tags, because each interaction starts and ends with a tag. However, to distinguish between HTML and Facebook commands, you prefix the tags with fb: as you would if you were using multiple DTDs/schemas in XHTML. By using the FBML tag set, Facebook abstracts a lot of complex code and makes many of the routine procedures almost effortless. For example, to add a link to your application’s help pages on your dashboard (the navigational tabs that go across the top), you simply need to add the following lines: Application Help REST API Calls Facebook API calls are grouped into eight action categories. These calls are really wrappers for more sophisticated FQL interactions with the Facebook back end but are useful bits of code that speed up the development of your application. These calls include the following: • facebook.auth provides basic authentication checks for Facebook users. • facebook.feed provides methods to post to Facebook news feeds. • facebook.friends provides methods to query Facebook for various checks on a user’s friends. • facebook.notifications provides methods to send messages to users. • facebook.profile allows you to set FBML in a user’s profile. • facebook.users provides information about your users (such as content from the user’s profile and whether they are logged in). • facebook.events provides ways to access Facebook events. • facebook.groups provides methods to access information for Facebook groups. • facebook.photos provides methods to interact with Facebook photos. 4 Introducing the Facebook Platform Facebook Query Language The Facebook Query Language (FQL) is a SQL-style language specifically designed to allow developers to interact with Facebook information. Facebook allows you to interact with nine separate “tables” to query information directly. You have access to the following: • user • friend • group • group_member • event • event_member • photo • album • phototag I’ll get into the specifics of the information you have access to in these “tables” later in the book, but suffice to say, Facebook exposes a lot of information to you for your application. And, like most SQL implementations, some additional functions allow you to take a few shortcuts when you request user information: • now() returns the current time. • strlen(string) returns the length of the string passed to the function. • concat(string1, string2,…, stringN) concatenates N strings together. • substr(string, start, length) returns a substring from a given string. • strpos(haystack, needle) returns the position of the character needle in the string haystack. • lower(string) casts the given string to lowercase. • upper(string) casts the given string to uppercase. To write FQL, you follow basic SQL syntax. For example, to extract my name and picture from Facebook, you would write a simple query like so: Introducing the Facebook Platform 5 SELECT name, pic FROM user WHERE uid = 7608007 The previous snippet, when executed by the Facebook platform, will return a structure (in a format that you define in your call) with a URL to the image of the profile image for user 7608007. Calls like these are useful in giving you granular control of the information you get back from the API. Facebook JavaScript To minimize the threat of cross-site scripting (XSS) attacks, Facebook implemented its own JavaScript for developers who really want, or need, to use JavaScript in their applications. Facebook scrubs (removes) much of the JavaScript you can add to your application, but by using Facebook JavaScript (FBJS) you can still enrich the user’s experience. Facebook formally released FBJS 1.0 in September 2007. If you’re well versed in JavaScript, you’ll pick this up quickly (or perhaps find it maddening). The following is a quick example of how you can provide a modal dialog box to your users: Show Dialog Box When processed through the Facebook platform, a user will be shown the modal dialog box represented in Figure 1-1 after clicking the Show Dialog Box hyperlink. Not bad for a single line of code! Figure 1-1. Modal dialog box
Client Libraries The Facebook platform provides many tools to access information, but you are responsible for providing your own business logic through some other language. Facebook facilitates this through “official” client libraries for both PHP and Java that provide convenient methods to access the Facebook application. However, not everyone in the universe uses Java and PHP exclusively. To help the rest of the programmers who want to develop their own Facebook application, client libraries are available for the following languages: • ActionScript • ASP.NET • ASP (VBScript) • ColdFusion • C++ • C# • D • Emacs Lisp • Lisp • Perl • PHP (4 and 5) • Python • Ruby • VB .NET • Windows Mobile This complement of languages should take care of just about most developers today. And although these client libraries are not “officially” supported by Facebook (meaning they won’t answer your questions about using them), they are posted by the company with at least some tacit approval of being the “officially unofficial” client libraries. By the way, I’m still waiting for them to include a library for Assembly. Introducing the Facebook Platform 7 Summary In this chapter, I briefly went over what the Facebook platform is and outlined some of its technologies and capabilities. I also talked about how Facebook has grown to be the second largest social network on the Web. In the forthcoming chapters, I’ll get more into the specifics of what the different parts of the platform do and how these components work together to allow programmers to develop rich applications for Facebook users. In the next chapter, you’ll work on setting up a new application from scratch, including setting up your server. There’s not much to set up before you start building your application, but you will need to pay attention to a few things in order to help in your planning and implementation stages.

No comments