Title: Yahoo APIs and Content Management Systems
1Yahoo APIs and Content Management Systems
- Dan Theurer, Technical Evangelist
- dan_at_yahoo-inc.com
- OSCMS Summit, Yahoo! Sunnyvale
- March 22th, 2007
2Whats coming up
- Yahoo! Developer Network
- Web Services - XML and beyond
- Authentication Web Services
- CMS BBAuth Modules
- Developer Candy
31. Yahoo! Developer Network
4Hackday - September 30th 2006
- Event
- Learning, Hacking, Camping
- Social aspect of Web 2.0?
- Numbers
- 450 developers came to Yahoo!
- One of them was Beck
- Over 4000 Pictures on Flickr (hackday06)
- 56 hacks presented.
- And the winner is
5Hackday Winners!
- Blogging In Motion (blogginginmotion.com),
- combined a camera, a handbag, a pedometer and the
Flickr API - takes a picture after every few steps
- automatically uploads to Flickr
- Outside the box!
- It was certainly one of the best
- developer events Ive ever attended.
- Ben Curren,
- Something special happened at
- Yahoo this week, and I was very
- lucky to be part of it.
- Mike Arrington
6- The central source for third parties (ISVs),
partners, and developers to leverage the Yahoo!
platform in their own applications - The Yahoo! platform consists of web services and
SDKs that allow developers to build software and
services that leverage - Yahoo's platform excellence
- highly-scalable infrastructure
- leadership position in online social media
7Web Services The key to
- Hackday and the Camera Purse
- Enable users to consume data in their own way
e.g. Flock, CMS - Beyond the browser mobile, desktop, etc.
- Integration (Internal / External / Partners)
- Mixing and Remixing Content.
8Enabling Developers
Data
HowTos
Support
Tools
9Compelling Products
Data
- APIs and Web Services
- Answers
- Geocoder
- Mail (private alpha)
- Maps
- Photos
- Search
- Shopping
- Term Extraction
- Many RSS feeds
HowTos
Tools
Support
10Additional Value
HowTos
- Best Practices
- Design Patterns
- Security Guidelines
- Performance Blog
- Developer Centers
- Flash
- JavaScript
- .NET
- PHP/ Python / Ruby
Data
Tools
Support
11Make it easy
Data
HowTos
Tools
- Code Samples
- Gallery
- Search SDK
- BBAuth Quickstart
- Utilities
- YUI Libraries
- TimeService
- Desktop-based environments
- Messenger SDK
- Widgets
Support
12Developer Ecosystem
HowTos
Data
Support
- Offer and dynamics
- Support for each API / Web service
- Engineers who wrote the APIs answer questions
- Developers helping each other
- High value feedback
Tools
13Companies we acquired that support Web services
and APIs
142. Web ServicesXML and beyond
15Styles of APIs and Web Services
- REST, yREST or RESTful
- RSS
- SOAP
- JavaScript, ActionScript APIs
- HTTP GET or POST
16REST(ful) MyWeb2.0 Example
- What is RESTA stateless client/server protocol
each HTTP message contains all the information
necessary to understand the request. As a result,
neither the client nor the server needs to
remember any communication-state between messages.
- http//search.yahooapis.com/MyWebService/V1/urlSea
rch?appiddantheureryahooiddantheurerresults1
outputxml
17MyWeb2.0 Response XML
- lt?xml version"1.0"?gt
- ltResultSet xmlnsxsi"http//www.w3.org/2001/XMLSc
hema-instance" totalResultsAvailable"52"
totalResultsReturned"1" firstResultPosition"1"gt - ltResultgt
- ltTitlegtYahoo! Developer Networklt/Titlegt
- ltSummarygtAPIs, Code morelt/Summarygt
- ltUrlgthttp//developer.yahoo.com/lt/Urlgt
- ltClickUrlgthttp//developer.yahoo.com/lt/ClickUrlgt
- ltUsergtdantheurerlt/Usergt
- ltNotegtlt/Notegt
- ltDategt1148078778lt/Dategt
- ltTagsgt
- ltTaggtapilt/Taggt
- ltTaggtweb 2.0lt/Taggt
- ltTaggtwebserviceslt/Taggt
- lt/Tagsgt
- lt/Resultgt
- lt/ResultSetgt
18MyWeb2.0 Response serialized PHP
- a1s9"ResultSet" a4
- s21"totalResultsAvailable"s2"52"
- s20"totalResultsReturned"s1"1
- s19"firstResultPosition"s1"1"
- s6"Result" a8
- s5"Title" s24"Yahoo! Developer Network"
- s7"Summary"s211"APIs, Code more"
- s3"Url"s27"http//developer.yahoo.com/"
- s8"ClickUrl"s27"http//developer.yahoo.com
/" - s4"User"s10"dantheurer"
- s4"Note"s0""
- s4"Date"s10"1148078778"
- s4"Tags"a1
- s3"Tag"a3
- i0s3"api"
- i1s7"web 2.0"
- i2s11"webservices"
19JSON JavaScript Object Notation
- outputJSONcallbackcbFunction
- Proxy free AJAX development
- No XML parsing required
- Less overhead on the wire
- Fast
20JSON Dynamic Script Tag
- Create a script node. The src url makes the
request. - The server sends the JSON text embedded in a
script. - cbFunction( ... JSONtext ... )
- The function cbFunction gets called with the
result data as value. - You have to be able to trust the service provider
21MyWeb2.0 Response JSON
- cbFunction( "ResultSet"
- "totalResultsAvailable"52,
- "totalResultsReturned"1,
- "firstResultPosition"1,
- "Result"
- "Title""Yahoo! Developer Network",
- "Summary""APIs, Code more",
- "Url""http\/\/developer.yahoo.com\/",
- "ClickUrl""http\/\/developer.yahoo.com\/",
- "User""dantheurer",
- Note""",
- "Date"1148078778,
- "Tags"
- "Tag"
- "api",
- "web 2.0",
- "webservices
- )
22API Driven Badges
http//kentbrewster.com/spiffysearch/
23Flickr API
- Photo sharing, tagging, community
- Fully programmable
- About 80 API calls
- JSON / SOAP / REST / XML-RPC / FLASH
- Geotagging maps pictures to locations
- Personalized results though Authentication API
for - Web applications
- Desktop
- Mobile apps
24Flickr Application Colrpickr
http//krazydad.com/colrpickr
25Upcoming.org APIs
- A community-driven event calendar where users
interact with their friends around events. - REST calls to work with
- events
- metros
- venues
- categories
- watchlist
- users
- RSS feeds for Metros, Groups, and user specific
events as well as parameterizes search. - Token-based authentication (similar to Flickr)
- New GeoTags support
26Multiple APIs Eventbrowser
http//api.local.yahoo.com/eb
273. BBAuth Browser Based Authentication
28Read-only APIs to discover information
Yahoo! Search
Your application or Web site
Read-write APIs facilitate participation
Yahoo! Photos
Your application or Web site
29Browser-Based Authentication for Yahoo! Web
Services
- Provides access to Yahoo! Web services through
third-party Web sites - User authenticates with Yahoo! (not the
third-party application) - Yahoo! never shares the user name and password
with the third-party developer - User can revoke permission from the third-party
application at any time
30BBAuth Developer Credentials Sign-up
1) http//developer.yahoo.com/
2) Developer needs to be logged in
3) Developer Registration
4) Domain Confirmation
5) If successful appid and secret
31How Browser-Based Authentication Works
32BBAuth Application Flow
In the re-direct to the applications success
URL, Yahoo includes a token
The calls are signed with the secret issued by
Yahoo.
Application submits signed appid and token
cookie WSSID (in response body)
api.login.yahoo.com
foo.net
Endpoint?appidxyzWSSID123 and cookie in header
- - foo.net can re-submit token for a fresh cookie
for up to 14 days - cookies are valid for one hour
- now data can be requested.
Data
33http//theurer.cc/code/auth
34BBAuth supports Single Sign-On
In the re-direct to the applications success
URL, Yahoo includes a token
We know that already!
- Use
- Upon request (send_userhash1), the userhash gets
included in the redirect to the third party
application. - The userhash allows an application to identify a
returning user. - Terminology
- The userhash is a unique identifier for a user of
a specific application.
35Single-Sign-On BBAuth
http//menuism.com - http//buxfer.com
364. CMS BBAuth Modules
37Single-Sign-On Drupal Plug-in
http//gallery.yahoo.com/apps/2187
38Single-Sign-On WP Plug-in
http//gallery.yahoo.com/apps/2188/
395. DEVELOPER CANDY
40Javascript User Interface Library
- A collection of JavaScript libraries you can use
in your Web development - Complex user interface controls
- A cross-browser Ajax library
- Connection, event, drag-drop and more
- Updated frequently
- Code available on Sourceforge
- Docs available at http//developer.yahoo.com/yui/
- Free and open-source (BSD license)
41Design Patterns
- A pattern describes an optimal solution to a
common problem within a specific context. - Auto-Complete
- Breadcrumbs
- Drag and Drop
- Tabs (Module / Navigation)
- Rating an Object
- Pagination (Objects / Pages)
- Writing a Review
42Yahoo! Pipes
43Application Gallery http//gallery.yahoo.c
om
- Unifies the many separate collections of
applications - Flickr, Search, Widgets, Maps, etc., etc.
- For Widgets, Web sites, plug-ins, etc.
- Web site that enables third-party software
developers to show off applications that utilize
Yahoo! technology. - Tag-based navigation
- Integration with Y! Ratings Reviews
- Support for localization
- RSS everywhere
44Application Gallery
45Questions? Comments?
- Yahoo! Developer Network http//developer.yahoo
.com/ - Contact me
- dan_at_yahoo-inc.com