The Facebook Application Platform

Facebook bet that opening its Application Platform would spur growth and build buzz, giving it an edge in the white-hot social network popularity contest. Four months and nearly 5000 applications later, it looks like that bet is paying off.

The report:

Sizes up the Facebook opportunity–who’s making money, and how?

Lays out best practices of marketing with Facebook Applications, aka Social Media Optimization (SMO)

Identifies the top 200 Facebook applications and plots their growth rates

They use them to dress up their profile pages with everything from maps showing what countries they’ve visited to outfits from a retail site to favorite YouTube videos.

They send virtual cocktails and gifts to each other, share reviews of favorite books and movies, and play poker together among numerous other things.

From Developers perspective:

Many of the developers of these applications are entrepreneurs looking to start new businesses while others are expanding existing ones.

The applications, which are inexpensive to create, have the potential to become a large source of revenue and customers for those companies that can successfully mine Facebook’s 30-million-strong community.

Companies are using a host of business models. Some, for instance, are selling advertising around the applications, while others promote their own products and services on Web pages shown to users of their applications.

New entrepreneurs entering the arena are bringing with them applications that are more sophisticated and can engage users more often and for longer periods of time.

These two sites serve completely different purposes:

developers.facebook.com is for news, documentation, resources and tools. It’s the official home of all Facebook development reference material, and you don’t need a Facebook account to access this site.

facebook.com/developers could be considered a “control panel” for developers. It looks a lot like a page for a Facebook group – there’s a “latest news” panel, a discussion board and a list of members – and it’s where you manage the applications that you are creating. You need a Facebook account to access this site, and you need to access this site to create Facebook applications.

Enter the name of your application into the “Application Name” field. This will be the display name of your application.

Read the terms and conditions and check the checkbox to indicate that you have read and agree to the terms and conditions.

Click the “Optional Fields” link.

Optional Fields:

Support Email – This will be automatically filled in with the email address that you use to log into Facebook. This is also an email address that will be made available to your users for support calls.

Callback URL – the code for your Facebook app doesn’t live on Facebook’s server; it lives on your server. Fill this field with the URL for the directory in which your app will reside.Your server name – XYZ.com
Name of the directory created on server – facebook
Application name – Test-app

Canvas Page URL – Within Facebook’s navigation system, your app will be accessible from some subdirectory of apps.facebook.com/XXX. You need to provide a unique name for that directory.
Only letters, dashes and underscore is allowed for the directory name. No numbers allowed.
For example: http://apps.facebook.com/XXX

Use FBML Vs. Use iframe –

These are the Pros

1. For FBML pages, Facebook sometimes does not call your server and displays an error message blaming it on you. For IFRAME, if the outside Facebook page gets called, your IFRAME page will always be called. (Common issue – server timed out error)

2. Within an Iframe, developer can use any JavaScript, CSS, AJAX, and Flash you like. You can even make the Flash auto-play.

3. If you have existing code, it will be easier to go with IFRAME (although it may not match Facebook’s look & feel)

These are the cons

1. You can’t use any FBML tags. To display a thumbnail of a friend becomes much more complex (you have to get the name and image file yourself, instead of just passing in the uid in a tag). In short, development using FBML is far simpler than Iframe.

2. If your IFRAME page is longer than the browser, it will display the scrollbar in the frame. However, FBML pages place the scrollbar on the overall page, which is more intuitive for users.

3. There are many more bugs with IFRAME because less developers are using it.

4. Facebook gives you a choice for canvas pages: either FBML or IFRAME. But the profile page can only be FBML.
New window will open

5. One advantage of FBML could be that the page would load faster, the browser doesn’t need to download all the duplicate css and javascript to do collapse and auto-complete.

Application type – Website or Desktop app

IP Addresses of Servers Making Requests – Requests from IP addresses other than the ones listed in this field will be rejected.

Can your application be added on Facebook? – Application can be added to a user’s Facebook account.

Terms of Service URL – This is an URL on your server where the “Terms of Service” page for your app lives.

Developers/ Co-developers name – Logged in developers name is displayed by default. Friends can be added as co-developers.

Icon – Displayed in the left menu of Facebook if the application has been added in the user’s profile.

On click ‘Yes’, in response to ‘Can your app be added on facebook?’ two new areas appear on the screen.

Installation Options:

Post-add URL – This is the URL that the user is redirected to after installing your application. Enter your full Canvas Page URL. For example, http://apps.facebook.com/Test-app.

Application Description: You can put a brief description of your app here for the benefit of users who are considering adding it.

Post-Remove URL: This is the URL that the user is redirected to after removing your application

Default FBML: This is the default content of the application if it hasn’t been set by your app

Default Profile Box Column: This specifies which column of the page your app should live in when first added by the user.

Developer Mode: This specifies whether only developers of the application are allowed to add this app.

Integration Points:

Side Nav URL: This is the URL for the app if a link to it is to appear in the side navigation.

Privacy URL: This lets you specify a link for a privacy configuration page for your application.

Help URL: This lets you specify a link for a help page for your application

Left Nav – Applications can have their icon and name added to the left hand Facebook navigation. This will link to that application’s homepage.

Facebook Canvas Pages – Facebook Canvas pages are presented within the Facebook frame and can either be FBML or an external html site presented within an iframe. Home – An application’s homepage is accessed from the Facebook Left Nav.User Dashboard – This is where users manage their own content within an application or see information about another user’s content within that application.Settings – User settings for a particular application.

Privacy Settings – Member will be able to set who can see your application’s profile box from Facebook’s privacy page. Any other privacy settings you wish to incorporate should be built into your application’s privacy/settings page.

News Feed – Applications can access News Feed and post stories to it.

Alerts – Applications can send notifications to a user through email. The user of the application who triggers this action must approve of the email, and users can opt out of receiving the email for any application that has ever sent them emails.

Message Attachments – Members can send a message with an attachment for any one of their added applications.

Requests – Applications can create requests that show up at the top right of a user’s homepage. These requests are usually initiated by a user’s friend and often require the user to take some form of action.

In computer programming, a widget (or control) is an interface element that a computer user interacts with, such as a window or a text box. Widgets are often packaged together in widget toolkits. Programmers use widgets to build graphical user interfaces (GUIs).