Facebook platform-tech3259

20
Building Applications on Facebook Platform David Zhuang Entrepreneur’s Playfield

description

Some of these SlideShare Presentations were not developed b me. However all are certainly worth having a look at.I am Stephen Darori on Linkedin. My Profile is one of the few Profiles that has been tagged both as a Power Profile and all Star Profile and one of the few outside the Mountain View Linkedin Campus. If you think after looking at my Linkedin Profile that we have now or could have in the future some synergy , please send me an invitation to connect and then after we are connected follow it up with an inmail. I am an Open Networker and with never IDK ( I don't know and invitation to connect on Linkedin or any other Social Media site.

Transcript of Facebook platform-tech3259

Page 1: Facebook platform-tech3259

Building Applications on

Facebook Platform

David Zhuang

Entrepreneur’s Playfield

Page 2: Facebook platform-tech3259

Overview

Open Distribution to Millions of Users

Capabilities / Integration Points

Architecture

Components

Resources

Page 3: Facebook platform-tech3259

Open Distribution

Build It, And They Are Already There • Developers: Equal Footing with Organizations

Platform Is Completely Open

Automated Viral Distribution Engine: News Feed

New Model for Entrepreneurs• Experiment: Low Investment (Time/Money)• If It Works, Ramp up

Page 4: Facebook platform-tech3259

Capabilities / Integration Points1. Product Directory2. About3. Left Nav4. Facebook Canvas Pages

a. Homeb. User Dashboardc. Settings

5. Profilea. Profile Boxb. Profile Action Links

6. Privacy Settings7. News Feed8. Alerts9. Message Attachments10.Requests

Page 5: Facebook platform-tech3259

Canvas: Embedded Application

Left Nav

Canvas

Page 6: Facebook platform-tech3259

Home Page: Viral Distribution

Left Nav

News Feed

Page 7: Facebook platform-tech3259

Profile: Viral Distribution

Left Nav

News Feed

ProfileBox

Page 8: Facebook platform-tech3259

Architecture: Traditional Web App

Web/AppServer

Database

1. HTTPRequest

2. HTMLResponse

SQL Query Data

Your Server

Page 9: Facebook platform-tech3259

Architecture: Facebook App - Canvas

Web/App Server

Database

1. HTTP

6. HTML

SQL Query Data

Your Server

Facebook Server

2. HTTP / REST

3. API/FQL

4. API Rsp

5. FBML

Page 10: Facebook platform-tech3259

0. API/FBML(Pushed Separately)

Architecture: Facebook App - Profile

Web/App Server

Database

1. HTTP

2. HTML

SQL Query Data

Your Server

Facebook Server

Page 11: Facebook platform-tech3259

Components

API• Web Service API• Client Library:

• Official: PHP, Java• Unofficial: Perl, Python, Ruby, VB.NET, and others

FQL• Similar to SQL• Access to user profile, friend, group, event, and photo

FBML• Similar to HTML• Subset of HTML + Proprietary Extensions

Page 12: Facebook platform-tech3259

API

Web Service API: Well Documented API Client Library

• Mostly Covered by Web Service API Documentation • For the Rest, Read Code (Only 2 Files)

• facebook.php• facebookapi_php5_restlib.php

Access Facebook User Data• Profile, Friends, Group, Event, Photo, etc.

Update User Views• Profile, Feed, etc.

Page 13: Facebook platform-tech3259

API Client Lib Function Examples

$facebook->redirect($url)

$facebook->require_login() / $facebook->require_add()

$facebook->get_login_url() / $facebook->get_add_url()

$facebook->api_client->feed_publishStoryToUser($title, $body, ...)

$facebook->api_client->friends_get()

$facebook->api_client->friends_getAppUsers()

$facebook->api_client->groups_get ($uid=null, $gids=null)

$facebook->api_client->profile_setFBML($markup, $uid=null)

Page 14: Facebook platform-tech3259

FQL

Very Similar to SQL• Select From One Table At a Time, No Join• Query Must Be Indexable

Access Facebook Database Tables• user, friend, group, group_member, event,

event_member, photo, album, photo_tag

Page 15: Facebook platform-tech3259

FBML

A Subset of HTML• Excluded: <script>• Limited: <style> (internal CSS only)• Cached: <img>• Hidden Fields Added (For Security): <form>

Proprietary Extensions• Markup Tags: UI Elements• Procedural Tags: Control Program Flow

Mock Ajax

Page 16: Facebook platform-tech3259

FBML Tags Example: Markup Tags

Code:<fb:dashboard>

<fb:action href="new.php">Create a new photo album</fb:action>

<fb:action href="you.php">Photos of You</fb:action>

</fb:dashboard>

Preview:

Page 17: Facebook platform-tech3259

FBML Tags Example: Procedural Tags

Code:

<fb:if-can-see uid="12345" what="profile">     You're allowed to see 12345's profile, chum!         <fb:else>         No profile for you!     </fb:else> </fb:if-can-see>

Page 18: Facebook platform-tech3259

Resources

Facebook Platform Documentation• Anatomy of a Facebook Application• Step-to-Step Guide to Creating an Application

Facebook Platform Wiki• Getting Started Guide• Basic Application Architecture

Facebook Developer Forum• Get Your Questions Answered

Page 19: Facebook platform-tech3259

Success Factors

Product Definition• Social in Nature• Unsatisfied Needs

Product Design/Development• Need a Hacker in Your Team: Non-Trivial Project

Scalability Plan• Much Shorter Ramp-up Time

Monetization Strategy You Need a Team!

Page 20: Facebook platform-tech3259

Contact Info

David Zhuang

[email protected]