FOWA Miami 2009 - Y!OS

55
Scaling Open Jonathan LeBlanc – Technology Evangelist Yahoo! Developer Network – Partner Integrations Slides: http://www.slideshare.net/jleblanc/fowa-miami

Transcript of FOWA Miami 2009 - Y!OS

Page 1: FOWA Miami 2009 - Y!OS

Scaling OpenJonathan LeBlanc – Technology Evangelist

Yahoo! Developer Network – Partner Integrations

Slides: http://www.slideshare.net/jleblanc/fowa-miami

Page 2: FOWA Miami 2009 - Y!OS

2

YAP Applications What’s a YAP Application?

Page 3: FOWA Miami 2009 - Y!OS

3

Page 4: FOWA Miami 2009 - Y!OS

4

Page 5: FOWA Miami 2009 - Y!OS

5

Page 6: FOWA Miami 2009 - Y!OS

6

Page 7: FOWA Miami 2009 - Y!OS

7

Page 8: FOWA Miami 2009 - Y!OS

8

Page 9: FOWA Miami 2009 - Y!OS

9

YAP Applications How do I get started?

Page 10: FOWA Miami 2009 - Y!OS

10

• Runs on YAP

• Supports 2- & 3- legged OAuth

• Supports OpenSocial 0.8

JavaScript APIs

Open Applications

Page 11: FOWA Miami 2009 - Y!OS

11

Open Application - Views

Small View

Large View

Page 12: FOWA Miami 2009 - Y!OS

12

Open Application – Small View

Page 13: FOWA Miami 2009 - Y!OS

13

Open Application – Large View

Page 14: FOWA Miami 2009 - Y!OS

14

http://developer.yahoo.com/dashboard

Page 15: FOWA Miami 2009 - Y!OS

15

http://developer.yahoo.com/dashboard

Page 16: FOWA Miami 2009 - Y!OS

16

Page 17: FOWA Miami 2009 - Y!OS

17

Page 18: FOWA Miami 2009 - Y!OS

18

Page 19: FOWA Miami 2009 - Y!OS

19

• Runs off platform

• Supports 2- & 3-legged OAuth

• Does not contain views

• Requires users to authenticate

session

OAuth Applications

Page 20: FOWA Miami 2009 - Y!OS

20

http://developer.yahoo.com/dashboard

Page 21: FOWA Miami 2009 - Y!OS

21

http://developer.yahoo.com/dashboard

Page 22: FOWA Miami 2009 - Y!OS

22

Page 23: FOWA Miami 2009 - Y!OS

23

Page 24: FOWA Miami 2009 - Y!OS

24

Page 25: FOWA Miami 2009 - Y!OS

25

Page 26: FOWA Miami 2009 - Y!OS

26

Page 27: FOWA Miami 2009 - Y!OS

27

YAP Code Dive What can you do with YAP?

Page 28: FOWA Miami 2009 - Y!OS

28

YAP Code Dive PHP SDK

Page 29: FOWA Miami 2009 - Y!OS

29

Used For:

- Public user data and open APIs

PHP SDK – 2-Legged OAuth Initialization

Page 30: FOWA Miami 2009 - Y!OS

30

Used For:

- Private data access

PHP SDK – 3-Legged OAuth Initialization

Page 31: FOWA Miami 2009 - Y!OS

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 2009 - Y!OS

32

PHP SDK – Create a User Update

Page 33: FOWA Miami 2009 - Y!OS

33

PHP SDK – Set the Status of a User

Page 34: FOWA Miami 2009 - Y!OS

34

YAP Code Dive Yahoo! Markup Language (YML)

Page 35: FOWA Miami 2009 - Y!OS

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 2009 - Y!OS

36

YML:A Tab Sample - Controller

Page 37: FOWA Miami 2009 - Y!OS

37

YML:A Tab Sample – Tab Construction

Page 38: FOWA Miami 2009 - Y!OS

38

YML:A Tab Sample - Product

Page 39: FOWA Miami 2009 - Y!OS

39

YML:A Small View Update Sample

Page 40: FOWA Miami 2009 - Y!OS

40

YML:A Small View Update Sample

Page 41: FOWA Miami 2009 - Y!OS

41

YAP Code Dive Yahoo! Query Language (YQL)

Page 42: FOWA Miami 2009 - Y!OS

42

YQL – Running a Query

Page 43: FOWA Miami 2009 - Y!OS

43

YAP Code Dive Caja

Page 44: FOWA Miami 2009 - Y!OS

44

Caja – JavaScript Before Cajoling

Page 45: FOWA Miami 2009 - Y!OS

45

Caja – JavaScript After Cajoling

Page 46: FOWA Miami 2009 - Y!OS

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 2009 - Y!OS

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 2009 - Y!OS

48

Caja Practical – Running an AJAX Request

Page 49: FOWA Miami 2009 - Y!OS

49

Caja Practical – Working with JSON

Page 50: FOWA Miami 2009 - Y!OS

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 2009 - Y!OS

51

Caja Practical – Assigning Click Handlers

Step 1 – Assign click handler after innerHTML is set

Page 52: FOWA Miami 2009 - Y!OS

52

Caja Practical – Assigning Click Handlers

Step 2 – Define your callback function

Page 53: FOWA Miami 2009 - Y!OS

53

YAP Code Dive Common Questions

Page 54: FOWA Miami 2009 - Y!OS

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 2009 - Y!OS

55

Thank You Questions?