Top Banner
Facebook App Development 101 Intro to the Platform/Building your first Facebook App Professor R. Tyler Ballance Slide, Inc. [email protected]
39

Facebook App Dev101 (Tyler Ballance, Slide.com)

Aug 10, 2014

Download

Art & Photos

Dave McClure

 Facebook App Dev 101 workshop: Intro to Platform / Building Your First App - Tyler Ballance, Slide.com & Ari Steinberg, Facebook @ Graphing Social Patterns Oct 2007
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Facebook App Dev101 (Tyler Ballance, Slide.com)

Facebook App Development 101

Intro to the Platform/Building your first Facebook App

Professor R. Tyler BallanceSlide, Inc.

[email protected]

Page 2: Facebook App Dev101 (Tyler Ballance, Slide.com)

I work at Slide, Inc.

Meet the Professor

Page 3: Facebook App Dev101 (Tyler Ballance, Slide.com)

Meet the Professor

I write Facebook apps.

Page 4: Facebook App Dev101 (Tyler Ballance, Slide.com)

Meet Ari

Works on the platform

Page 5: Facebook App Dev101 (Tyler Ballance, Slide.com)

Facebook App Dev 101Introduction to the Facebook Platform

Facebook Developer Resources

Platform Client Libraries

Dissecting “Why are you awesome?”

LUNCH!

Building an application

Testing your application

Metrics?

Page 6: Facebook App Dev101 (Tyler Ballance, Slide.com)

Introduction to the Platform

Page 7: Facebook App Dev101 (Tyler Ballance, Slide.com)

Welcome to the Facebook Platform

Page 8: Facebook App Dev101 (Tyler Ballance, Slide.com)

A black blue box of social information

Dave McClure is attending Graphing Social

Keith Rabois attended CommunityNext Platform

Max Levchin updated his Top FriendsWill Liu is no longer listed as single.

David Young added a new video to a group.

Tony Hsieh left the group Tony Hsieh For President

Nik Gandhy wrote on Lennisse Ambriz’s wall.Kasey Kirkham added new photos.

Kara Swisher and Mark Zuckerberg ended their relationship.

Jared Fleiser has thrown a sheep at Sonya Chawla

Kevin Ho is feeling graphical.

Mike Huang updated his profile. He edited his interests and profile picture.

Adora and Daniel Kim are now friends.

Lee Lorenzen plans to attend Widget Summit

Adora Cheung added FunWall

Welcome to the Facebook Platform

Page 9: Facebook App Dev101 (Tyler Ballance, Slide.com)

Developer Resources

Page 10: Facebook App Dev101 (Tyler Ballance, Slide.com)

Developer Resources

Test Consolehttp://developers.facebook.com/tools.php

Bugzillahttp://bugs.developers.facebook.com/

Developer Applicationhttp://www.facebook.com/developers/

Developer Wikihttp://wiki.developers.facebook.com

Page 11: Facebook App Dev101 (Tyler Ballance, Slide.com)

Subscribe to Platform Feeds

Page 12: Facebook App Dev101 (Tyler Ballance, Slide.com)

Report good bugs

Page 13: Facebook App Dev101 (Tyler Ballance, Slide.com)

IRC Channel

Page 14: Facebook App Dev101 (Tyler Ballance, Slide.com)

Technically Speaking

Page 15: Facebook App Dev101 (Tyler Ballance, Slide.com)

<fb:hello/>

HTTP Request

JSON

XML

How do you communicate

with Facebook?

Page 16: Facebook App Dev101 (Tyler Ballance, Slide.com)

Is Zuckerberg my friend?

<?xml version="1.0" encoding="UTF-8"?><friends_areFriends_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd" list="true"> <friend_info> <uid1>627205543</uid1> <uid2>4</uid2> <are_friends>0</are_friends> </friend_info></friends_areFriends_response>

XML Response<xml>NO</xml>

[{"uid1":"627205543","uid2":"4","are_friends":false}]

JSON Response

{‘um’: ‘NO!’}

412 bytes

53 bytes

Page 17: Facebook App Dev101 (Tyler Ballance, Slide.com)

Friends’ UIDs

697 friends

JSON XML

16KB 44KB

SELECT uid1 FROM friend WHERE uid2 = 627205543

Page 18: Facebook App Dev101 (Tyler Ballance, Slide.com)

Facebook Client Libraries

Page 19: Facebook App Dev101 (Tyler Ballance, Slide.com)

PHPCons Pros

Only works with XML

Written in PHP

Super-easy to use.(like BASIC, but with dollar signs)

Conducive to

spaghetti code

Officially supported

Wider variety of

hosting options

Page 20: Facebook App Dev101 (Tyler Ballance, Slide.com)

PythonCons Pros

Shared hosts don’t tend

to support Python

Uses simplejson by

default

Very well written API

Slightly larger learning

curve for beginners

Supports JSON/XML

by default

Easily integrated

with Django

Good enough for Slide

Page 21: Facebook App Dev101 (Tyler Ballance, Slide.com)

RubyCons Pros

Difficult to move from

PHP to Ruby

Bends the rules on how

to write RESTful code

Scales well

Easy to write poorly

performing code

Ruby on Rails can be

very clean

Rails encourages

automated testing.

Very Web 2.0Not quite conforming to

Ruby “coding standards”

Page 22: Facebook App Dev101 (Tyler Ballance, Slide.com)

.NETCons Pros

IIS, or mod_monoA variety of existing

UserControls

Very “enterprisey” and

complicated

Usable from C#, or

VB.NET

Tight integration

with Visual Studio

LINQ support

Very well documented

Some aspects

require .NET 3.5

Tied to XML with

a noose

Page 23: Facebook App Dev101 (Tyler Ballance, Slide.com)

Other Libraries

ColdFusion

Perl

Java

C++

Page 24: Facebook App Dev101 (Tyler Ballance, Slide.com)

More Cons

Platform moves too quickly

Marketplace API

Status API

Data Store API

Very little “shared coding standards”

Everybody’s reinventing the wheel

Page 25: Facebook App Dev101 (Tyler Ballance, Slide.com)

Dissecting“Why are you awesome?”

Page 26: Facebook App Dev101 (Tyler Ballance, Slide.com)

What it is yo.

Owl == AWESOME

Page 27: Facebook App Dev101 (Tyler Ballance, Slide.com)

Post-Install

Social context

Call to action

Owl

Page 28: Facebook App Dev101 (Tyler Ballance, Slide.com)

Post-Install

fb:action

fb:dashboard

fb:profile-pic

fb:name

regular form

regular links

Page 29: Facebook App Dev101 (Tyler Ballance, Slide.com)

Changin’ State

fb:success

Page 30: Facebook App Dev101 (Tyler Ballance, Slide.com)

Notify. Rinse. Repeat.

fb:notif-page

Page 31: Facebook App Dev101 (Tyler Ballance, Slide.com)

IN UR PROFILEZ

auto-generated fb:pronoun

OMFG LAME

Page 32: Facebook App Dev101 (Tyler Ballance, Slide.com)

IN UR PROFILEZ

fb:profile-pic

fb:name

Mock AJAX’d

Page 33: Facebook App Dev101 (Tyler Ballance, Slide.com)

IN UR PROFILEZ

fb:error

Page 34: Facebook App Dev101 (Tyler Ballance, Slide.com)

Zee Codes

Page 35: Facebook App Dev101 (Tyler Ballance, Slide.com)

Building your first application

Page 36: Facebook App Dev101 (Tyler Ballance, Slide.com)

Testing your Facebook application

Page 37: Facebook App Dev101 (Tyler Ballance, Slide.com)

Use basic unit testing

Application Logic

phpunit

Page 38: Facebook App Dev101 (Tyler Ballance, Slide.com)

Metrics, engagement and fun numbers

Page 39: Facebook App Dev101 (Tyler Ballance, Slide.com)

Closure