fowa miami

55
Scaling Open Jonathan LeBlanc – Technology Evangelist Yahoo! Developer Network – Partner Integrations Slides http://www.slideshare.net/jleblanc/future-of-web-apps-miami-fl-february-2009

Transcript of fowa miami

Page 1: fowa miami

Scaling OpenJonathan LeBlanc – Technology Evangelist

Yahoo! Developer Network – Partner Integrations

Slideshttp://www.slideshare.net/jleblanc/future-of-web-apps-miami-fl-february-2009

Page 2: fowa miami

2

YAP Applications What’s a YAP Application?

Page 3: fowa miami

3

Page 4: fowa miami

4

Page 5: fowa miami

5

Page 6: fowa miami

6

Page 7: fowa miami

7

Page 8: fowa miami

8

Page 9: fowa miami

9

YAP Applications How do I get started?

Page 10: fowa miami

10

• Runs on YAP

• Supports 2- & 3- legged OAuth

• Supports OpenSocial 0.8

JavaScript APIs

Open Applications

Page 11: fowa miami

11

Open Application - Views

Small View

Large View

Page 12: fowa miami

12

Open Application – Small View

Page 13: fowa miami

13

Open Application – Large View

Page 14: fowa miami

14

http://developer.yahoo.com/dashboard

Page 15: fowa miami

15

http://developer.yahoo.com/dashboard

Page 16: fowa miami

16

Page 17: fowa miami

17

Page 18: fowa miami

18

Page 19: fowa miami

19

• Runs off platform

• Supports 2- & 3-legged OAuth

• Does not contain views

• Requires users to authenticate

session

OAuth Applications

Page 20: fowa miami

20

http://developer.yahoo.com/dashboard

Page 21: fowa miami

21

http://developer.yahoo.com/dashboard

Page 22: fowa miami

22

Page 23: fowa miami

23

Page 24: fowa miami

24

Page 25: fowa miami

25

Page 26: fowa miami

26

Page 27: fowa miami

27

YAP Code Dive What can you do with YAP?

Page 28: fowa miami

28

YAP Code Dive PHP SDK

Page 29: fowa miami

29

Used For:

- Public user data and open APIs

PHP SDK – 2-Legged OAuth Initialization

Page 30: fowa miami

30

Used For:

- Private data access

PHP SDK – 3-Legged OAuth Initialization

Page 31: fowa miami

31

3-Legged OAuth

getSessionedUser (session)getOwner (session)getUser (session)query (session)getPresence (user)setPresence (user)listUpdates (user)listConnectionUpdates (user)insertUpdate (user)deleteUpdate (user)loadProfile (user)getConnections (user)getContacts (user)setSmallView (user)

2-Legged OAuth

setSmallView (application)query (application)

PHP SDK – Available Methods

Page 32: fowa miami

32

PHP SDK – Create a User Update

Page 33: fowa miami

33

PHP SDK – Set the Status of a User

Page 34: fowa miami

34

YAP Code Dive Yahoo! Markup Language (YML)

Page 35: fowa miami

35

YML Tags (Large View)

yml:ayml:adyml:audioyml:formyml:friend-selectoryml:if-envyml:messageyml:nameyml:profile-picyml:pronounyml:shareyml:swfyml:user-badge

YML Lite Tags (Small View)

yml:ayml:audioyml:formyml:if-envyml:nameyml:profile-picyml:pronounyml:user-badge

YML – Available Tags

Page 36: fowa miami

36

YML:A Tab Sample - Controller

Page 37: fowa miami

37

YML:A Tab Sample – Tab Construction

Page 38: fowa miami

38

YML:A Tab Sample - Product

Page 39: fowa miami

39

YML:A Small View Update Sample

Page 40: fowa miami

40

YML:A Small View Update Sample

Page 41: fowa miami

41

YAP Code Dive Yahoo! Query Language (YQL)

Page 42: fowa miami

42

YQL – Running a Query

Page 43: fowa miami

43

YAP Code Dive Caja

Page 44: fowa miami

44

Caja – JavaScript Before Cajoling

Page 45: fowa miami

45

Caja – JavaScript After Cajoling

Page 46: fowa miami

46

Caja - IFrame Security Concerns

IFrame Concerns

• Drive-by downloads

• No real content restrictions

• Other known exploits

Caja Implementation

• Blacklist all / Whitelist some model

• Secure OpenSocial container

Page 47: fowa miami

47

Caja – Best Practices

• Use OpenSocial JavaScript standards

• Use W3C standards

• Use YML wherever possible

• Unit test all JavaScript

• Read the documentation

(http://developer.yahoo.com/yos)

• Participate in the forums

(http://developer.yahoo.net/forum/)

Page 48: fowa miami

48

Caja Practical – Running an AJAX Request

Page 49: fowa miami

49

Caja Practical – Working with JSON

Page 50: fowa miami

50

Caja Practical – Assigning Click Handlers

• Caja client side sanitizer strips JavaScript when

inserted in DOM following AJAX requests

• How do I assign click handlers then?

Given: DOM Node with an ID

<div id=‘myClickDiv’>Click Me!</div>

Page 51: fowa miami

51

Caja Practical – Assigning Click Handlers

Step 1 – Assign click handler after innerHTML is set

Page 52: fowa miami

52

Caja Practical – Assigning Click Handlers

Step 2 – Define your callback function

Page 53: fowa miami

53

YAP Code Dive Common Questions

Page 54: fowa miami

54

• I have an existing OpenSocial application. How do I get started?

• I have an existing Facebook application. How do I get started?

• How do I authenticate OAuth using JavaScript?

• What is a Java Module Envelope error and how do I fix it?

• Plans for other SDKs besides PHP and AS3?

• How do users find my application?

Common Questions – Q & A

Page 55: fowa miami

55

Thank You Questions?