7 Developing Facebook Applications OSSW ICOSST 2009

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Developing

Facebook Applications
By

M.ALI and
Aamir Latif
Application Development

Objective
• A very basic introduction to developing
applications with Facebook using PHP.
• Keep it simple.
• Goal is learning.
• Level:Basic
Application Development

Agenda
• Presentation [M.ALI] 20 mins
• Demonstration [Amir Latif] 15 mins
• Question/Answer 10 mins
Application Development

What is Facebook?
• Facebook is a web application that provides a
kind of social networking with people near
you.
• Facebook was founded by Mark Zuckerberg in
2004.
• Originally designed to connect different
colleges and universities.
• Facebook name has origin in magazine that
was distributed to new students
Application Development

Facebook facts
• World largest social network with over 350
million users.
• An average teen spends about 20 mins daily.
• More than 65 million active users at a time.
• Consists of more than 500,000 active
applications.
• 6.5 millions users access FB from mobile
• More facts on
http://www.facebook.com/press/info.php?statist
ics
Application Development

Facebook application
• Developing facebook application mean it is
accessible from FB.
• Application is exposed to millions of users
worldwide.
• There is a chance for the application to
become a popular one in FB.
• Applications can be social applications like
super wall,games like crazy taxi and quizzes.
Application Development

Facebook Applications
Some Popular Facebook
applications
Application Development

Farm Ville
Application Development

Facebook Platform
• Facebook platform is a framework for
developers to interact with the core features
of the facebook site.
• Anyone can developed an application in
Facebook by pointing their URL to
developers.facebook.com
• The idea was to enable everyone to provide
content to the facebook site.
• Provides web services
Application Development

Standard web application


Application Development

Facebook Application Platform


• Platform components:

1. Users’ machine

2. Facebook Server(s)

3. Application Server
Application Development

Client/Server Interaction

Browser

App Canvas
1. Browser makes request 5 . Facebook renders FBML to HTML

Facebook server

2. FB server calls App Server 3. App calls FB API 4. App server returns
through callback URL FBML

Your app server


Application Development

How Facebook application works?


Creating your first Facebook
application
Application Development

Before you begin


• A PHP editor available in Netbeans or Eclipse
• A php enabled web server to host your
application
• A facebook client library for php ;can be
downloaded from
http://wiki.developers.facebook.com/index.ph
p/User:Client_Libraries
Application Development

Step-by-step Guide to Creating Facebook App


http://developers.facebook.com/step_by_step.php
Application Development
Extract data with your App
http://developers.facebook.com/documentation.php
Application Development

The Facebook Platform Elements


• There are three elements to the Facebook
Platform:
– The Facebook API (Application Programming
Interface).
– FBML—Facebook Markup Language
– FQL—Facebook Query Language
Application Development

Facebook APIs
http://wiki.developers.facebook.com/index.php/API#API_Methods

• A lot of handy functions provided with a


Facebook Object.
• For example: Users.getInfo
– Returns a wide array of user-specific information
for each user identifier passed, limited by the view
of the current user.
Application Development

FBML
http://wiki.developers.facebook.com/index.php/FQBML

• Facebook Markup Language (FBML)


• Subset of HTML
• Br,div,h1,li,pre,span etc
• Facebook specific tags
• Fb: create-button, fb:dashboard,
fb:error,fb:message,fb:name etc
• Used in application which use canvas user
profile,mini feed etc
Application Development

Facebook API Test Console


Application Development

FBML
Application Development

Facebook Query Language (FQL)


• FQL = subset of SQL
– Only select-statements, no updates/deletes
• Exposed Facebook data/tables:
– User, Friend, Group, Group_member, Event,
Event_member, Photo, AlbumPhoto_tag

• SELECT name, affiliations


FROM user
WHERE uid IN (SELECT uid2
FROM friend
WHERE uid1=211031)
Application Development

Facebook Database tables


album Application

Comment Event

connection Family

friend group

photo user

URL: http://wiki.developers.facebook.com/index.php/FQL_Tables
Understanding FBML and IFRAMES
Application Development

FBML – Facebook Markup Language


• Subset of HTML + Facebook elements
• Functionalities:
– Enforce uniform/standard look and feel for shared
components: navigation, wall, dashbord, friend-
selector, buttons, time-dates, dialog, notification.
– Implementing privacy designs: e.g., restrict the
content to be only visible to the current viewer.
• Syntax just like well-formed HTML/XML.
Understanding the Types of FBML
Application Development

Tags
• The goal of FBML is to support a versatile tag set in order to
help developers target these different settings.
– Social data tags e.g fb:name.
– Sanitization tags e.g fb:swf
– Design tags e.g fb:tabs
– Component tags e.g fb:comments
– Control tags e.g fb:visible-to-owner
URL:http://developers.facebook.com/specification.php
Application Development

FBML

• <fb:editor action="?do-it" labelwidth="100">


<fb:editor-text label="Title" name="title" value=""/>
<fb:editor-text label="Author" name="author" value=""/>
<fb:editor-custom label="Status">
<select name="state">
<option value="0" selected>have read</option>
<option value="1">am reading</option>
<option value="2">want to read</option>
</select>
</fb:editor-custom>
<fb:editor-textarea label="Comment" name="comment"/> <fb:editor-buttonset>
<fb:editor-button value="Add"/>
<fb:editor-button value="Recommend"/>
<fb:editor-cancel />
</fb:editor-buttonset>
</fb:editor>
Application Development

FBML

• <fb:tabs>
<fb:tab-item href='http://apps.facebook.com/yourapp/myphotos.php' title='My
Photos' selected='true'/>
<fb:tab-item href='http://apps.facebook.com/yourapp/recentalbums.php'
title='Recent Albums' />
</fb:tabs>

• <fb:success>
<fb:message>Success message</fb:message>
This is the success message text.
</fb:success>
Application Development

FBML vs IFrames
FBML
• Is Quick; suitable for beginners
• Ease of access to the facebook elements
• Pages have nice URLs
IFrames
• Easier and faster for existing applications
• Faster experience for users over the long run and faster for AJAX
• Let you use the JavaScript, HTML, and standard
Application Development

Facebook Connect

URL: http://wiki.developers.facebook.com/index.php/Facebook_Connect
Application Development

Demonstration
Application Development

Q/A session

You might also like