Building Web Applications Using Yahoo! Web Services Jeffrey McManus Director, Yahoo! Developer Network March, 2006
About this talk About Yahoo! Web services How to build a .NET application using Y! Web services Using ASP.NET Atlas with Y! Web services About the Yahoo! User Interface Libraries and Ajax technologies A look ahead
Our Goals: Building a Developer Ecosystem on the Yahoo! Platform Provide as many compelling products for developers as possible Web service APIs, tools, libraries, etc. Create and grow a developer community Disseminate information about our developer offerings Provide exceptional support for developers
Developer Momentum We entered 2005 with a smattering of third-party developers (mostly private partnerships, negotiated on a one-off basis) We exited 2005 with a community of  tens of thousands of developers We will continue to make integrating with Yahoo! easier and easier on both a technical and a business level
 
WEB SERVICES
Search Web Services Audio Search Album Search Artist Search Podcast Search Download Location Song Search Autos Custom Content Analysis Image Search Local Search MyWeb Search News Search Site Explorer Video Search Web Search Context Search Related Queries Spelling Suggestion
Web Search API: Inputs query region type (all, any, phrase) # of results start position format (html, msword, pdf, ppt, etc.) language country site subscription license (creative commons) output (xml, json, php) callback (json)
Web Search API: Outputs totalResultsAvailable, totalResultsReturned Title Summary Url ClickUrl MimeType ModificationDate Cache (Url + size)
Use Martin Brown’s .NET Wrapper Classes to Call Search Web Services Downloads and parses search results from most of our search APIs No HTTP-handling or XML-parsing necessary Generated from schema using xsd.exe Full source code (C# and VB.NET) included http://www.mgbrown.com/downloads.aspx
Example: Performing a Web Search Using the Brown Wrapper This is a “traditional” request/response example (no Ajax stuff...yet)
Simple Maps API Plot up to 100 points on a Yahoo! map without programming and without limits Add geoRSS tags to an existing RSS feed to plot RSS data points on a map
Demo: Simple Maps
Ajax Maps API http://developer.yahoo.net/maps/ajax/
Flash Maps API http://developer.yahoo.net/maps/flash/ Example: runningmaps.com
Maps “Building Block” APIs Geocoding API Map Image API Traffic API Local Search API Returns long/lat for plotting on maps
Music Engine Plug-Ins Yahoo! Music Engine provides personalized streaming radio, music purchase, and unlimited subscription music The music client application is pluggable Create plug-ins written in C++ or JavaScript Applications run in embedded IE within the Music Engine client http://music.yahoo.com/musicengine/ http://developer.yahoo.net/music/
Trip Planner API Return information on where to go and what to do from Yahoo! Trip Planner (travel.yahoo.com/trip) Retrieve trips planned from a specific Yahoo! user Example:  http://api.travel.yahoo.com/TripService/V1/tripSearch?appid=YahooDemo&query=las+vegas
Shopping API Retrieve product and pricing information from our database of products http://developer.yahoo.net/shopping/ Example:  http://api.shopping.yahoo.com/ShoppingService/V2/productSearch?appid=YahooDemo&query=creative+zen
Shopping API 2.0 New features for the Yahoo! comparison shopping API Search-narrowing options Shoes >> Men’s Shoes >> Size 9 Build a product hierarchy based on that of shopping.yahoo.com Variable product image sizes to fit your layout
Shopping Paid Syndication Beta Make money by referring traffic to Yahoo! Shopping advertising partners Now accepting beta applications: http://shopping.yahoo.com/syndication/
Flickr API Flickr is a photo-sharing community that makes it easy to upload, organize/tag, and share photos Flickr API makes it easy to build applications that incorporate Flickr http://developer.yahoo.net/flickr/
Upcoming.org Event-sharing community Joined Yahoo! in 2005 http://upcoming.org/services/api/
MyWeb and del.icio.us Save your bookmarks to the Web Tag, label, share URLs with your friends del.icio.us has an API today, MyWeb has search today with read/write coming soon
New: JavaScript Developer Center Provides assistance with scripting and AJAX development JSON Web services support give JavaScript developers the ability to easily handle data without parsing XML Facilitates rapid development and creation of AJAX applications http://developer.yahoo.net/javascript/
Design Pattern Library Solutions and guidance to common Web user interface problems Techniques reflect years of experience and user testing Includes solutions for such issues as accessibility Provided under a Creative Commons license http://developer.yahoo.net/ypatterns/
New: Javascript User Interface Library A collection of JavaScript libraries you can use in your Web development Complex user interface controls A cross-browser Ajax library Drag-drop and event libraries To be updated frequently Free and open-source (BSD license) http://developer.yahoo.net/yui/
Yahoo! JavaScript UI Components Animation Connection Manager DOM Drag and Drop Event Calendar Slider TreeView CORE UTILITIES UI CONTROLS
JSON Serialization Provides a way to retrieve Web Excellent way to write Ajax applications because the data is in native JavaScript format This happens to be the same way that Atlas communicates between client and server Referencing a JSON-emitting service in a <script> tag enables you to consume data without parsing or proxying Be careful that the source of the JSON is trustworthy
PARTICIPATE
Yahoo’s Mission To help users: Find Use Share Expand ...all human knowledge
Building a Participation Platform Today we provide a number of “find” services that are usable on and off Yahoo! Now we must address “use,” “share” and “expand” This will enable a new wave of user participation based on the Yahoo! platform Services we provide to facilitate this must be: Bidirectional Personalized Secure
Authentication and personal information One of the strengths of Yahoo! is  personalization Enabling users to create, store and share information, and to personalize their experience We are now extending this to third-party applications and Web sites Through secure authentication, we will enable Yahoo! users to get access to Yahoo! data in a way that is  ubiquitous ,  easy ,  open , and  secure
Yahoo! Search Your application or Web site Retrieve Web search results
Yahoo! Photos Your application or Web site Retrieve photos Upload, organize, tag and share photos
Browser-Based Authentication for Yahoo! Web Services Provides access to Yahoo! Web services through third-party Web sites How it works: User discovers a third-party Web site User authenticates with Yahoo! (not the third-party developer) Yahoo! sends a token to the developer that enables her to make API calls on the user’s behalf Yahoo!  never  shares the user name and password with the third-party developer User can revoke permission from the third-party developer at any time
How Browser-Based Authentication Works
SHARE
Yahoo! Application Gallery The Yahoo! Developer Network’s first consumer-oriented site Showcases applications built using Yahoo! technology Widgets, Web sites, plug-ins, etc. Unifies the (many) disparate collections of applications that have been maintained here and there throughout Yahoo! Flickr, Search, Widgets, Maps, etc., etc.
Application Gallery Features Developers can submit links and descriptions of their applications Add tags to assist with discovery of applications, sites and widgets Users can rate and review applications We’ll feature the highest-rated apps and developers Search for applications powered by the greatest search engine in the world, Yahoo! Search
 
What’s Next? Many of the simple, obvious, read-only integration points with Yahoo! are completed and available today However: What we’ve done to date is only the tip of the iceberg
Coming Soon: Calendar API Yahoo! Calendar enables users to store calendar events, scheduled recurring appointments, share calendars across multiple users, and set alerts The Yahoo! Calendar API enables Calendar integration with your Web site Will utilize Browser-Based Authentication JSON and iCal support coming soon Other formats will appear later in the year
Coming Soon: Yahoo! Photos API A read/write API for the most popular photo-sharing site in the world, Yahoo! Photos Will utilize Browser-Based Authentication
Questions? Comments? Yahoo! Developer Network:  http://developer.yahoo.net/ My blog:  http://mcmanus.typepad.com/ These slides:  http://redblazer.com/talks/ Contact me:  jeffreymcmanus@yahoo.com

Building AJAX Applications Using Yahoo! Web Services

  • 1.
    Building Web ApplicationsUsing Yahoo! Web Services Jeffrey McManus Director, Yahoo! Developer Network March, 2006
  • 2.
    About this talkAbout Yahoo! Web services How to build a .NET application using Y! Web services Using ASP.NET Atlas with Y! Web services About the Yahoo! User Interface Libraries and Ajax technologies A look ahead
  • 3.
    Our Goals: Buildinga Developer Ecosystem on the Yahoo! Platform Provide as many compelling products for developers as possible Web service APIs, tools, libraries, etc. Create and grow a developer community Disseminate information about our developer offerings Provide exceptional support for developers
  • 4.
    Developer Momentum Weentered 2005 with a smattering of third-party developers (mostly private partnerships, negotiated on a one-off basis) We exited 2005 with a community of tens of thousands of developers We will continue to make integrating with Yahoo! easier and easier on both a technical and a business level
  • 5.
  • 6.
  • 7.
    Search Web ServicesAudio Search Album Search Artist Search Podcast Search Download Location Song Search Autos Custom Content Analysis Image Search Local Search MyWeb Search News Search Site Explorer Video Search Web Search Context Search Related Queries Spelling Suggestion
  • 8.
    Web Search API:Inputs query region type (all, any, phrase) # of results start position format (html, msword, pdf, ppt, etc.) language country site subscription license (creative commons) output (xml, json, php) callback (json)
  • 9.
    Web Search API:Outputs totalResultsAvailable, totalResultsReturned Title Summary Url ClickUrl MimeType ModificationDate Cache (Url + size)
  • 10.
    Use Martin Brown’s.NET Wrapper Classes to Call Search Web Services Downloads and parses search results from most of our search APIs No HTTP-handling or XML-parsing necessary Generated from schema using xsd.exe Full source code (C# and VB.NET) included http://www.mgbrown.com/downloads.aspx
  • 11.
    Example: Performing aWeb Search Using the Brown Wrapper This is a “traditional” request/response example (no Ajax stuff...yet)
  • 12.
    Simple Maps APIPlot up to 100 points on a Yahoo! map without programming and without limits Add geoRSS tags to an existing RSS feed to plot RSS data points on a map
  • 13.
  • 14.
    Ajax Maps APIhttp://developer.yahoo.net/maps/ajax/
  • 15.
    Flash Maps APIhttp://developer.yahoo.net/maps/flash/ Example: runningmaps.com
  • 16.
    Maps “Building Block”APIs Geocoding API Map Image API Traffic API Local Search API Returns long/lat for plotting on maps
  • 17.
    Music Engine Plug-InsYahoo! Music Engine provides personalized streaming radio, music purchase, and unlimited subscription music The music client application is pluggable Create plug-ins written in C++ or JavaScript Applications run in embedded IE within the Music Engine client http://music.yahoo.com/musicengine/ http://developer.yahoo.net/music/
  • 18.
    Trip Planner APIReturn information on where to go and what to do from Yahoo! Trip Planner (travel.yahoo.com/trip) Retrieve trips planned from a specific Yahoo! user Example: http://api.travel.yahoo.com/TripService/V1/tripSearch?appid=YahooDemo&query=las+vegas
  • 19.
    Shopping API Retrieveproduct and pricing information from our database of products http://developer.yahoo.net/shopping/ Example: http://api.shopping.yahoo.com/ShoppingService/V2/productSearch?appid=YahooDemo&query=creative+zen
  • 20.
    Shopping API 2.0New features for the Yahoo! comparison shopping API Search-narrowing options Shoes >> Men’s Shoes >> Size 9 Build a product hierarchy based on that of shopping.yahoo.com Variable product image sizes to fit your layout
  • 21.
    Shopping Paid SyndicationBeta Make money by referring traffic to Yahoo! Shopping advertising partners Now accepting beta applications: http://shopping.yahoo.com/syndication/
  • 22.
    Flickr API Flickris a photo-sharing community that makes it easy to upload, organize/tag, and share photos Flickr API makes it easy to build applications that incorporate Flickr http://developer.yahoo.net/flickr/
  • 23.
    Upcoming.org Event-sharing communityJoined Yahoo! in 2005 http://upcoming.org/services/api/
  • 24.
    MyWeb and del.icio.usSave your bookmarks to the Web Tag, label, share URLs with your friends del.icio.us has an API today, MyWeb has search today with read/write coming soon
  • 25.
    New: JavaScript DeveloperCenter Provides assistance with scripting and AJAX development JSON Web services support give JavaScript developers the ability to easily handle data without parsing XML Facilitates rapid development and creation of AJAX applications http://developer.yahoo.net/javascript/
  • 26.
    Design Pattern LibrarySolutions and guidance to common Web user interface problems Techniques reflect years of experience and user testing Includes solutions for such issues as accessibility Provided under a Creative Commons license http://developer.yahoo.net/ypatterns/
  • 27.
    New: Javascript UserInterface Library A collection of JavaScript libraries you can use in your Web development Complex user interface controls A cross-browser Ajax library Drag-drop and event libraries To be updated frequently Free and open-source (BSD license) http://developer.yahoo.net/yui/
  • 28.
    Yahoo! JavaScript UIComponents Animation Connection Manager DOM Drag and Drop Event Calendar Slider TreeView CORE UTILITIES UI CONTROLS
  • 29.
    JSON Serialization Providesa way to retrieve Web Excellent way to write Ajax applications because the data is in native JavaScript format This happens to be the same way that Atlas communicates between client and server Referencing a JSON-emitting service in a <script> tag enables you to consume data without parsing or proxying Be careful that the source of the JSON is trustworthy
  • 30.
  • 31.
    Yahoo’s Mission Tohelp users: Find Use Share Expand ...all human knowledge
  • 32.
    Building a ParticipationPlatform Today we provide a number of “find” services that are usable on and off Yahoo! Now we must address “use,” “share” and “expand” This will enable a new wave of user participation based on the Yahoo! platform Services we provide to facilitate this must be: Bidirectional Personalized Secure
  • 33.
    Authentication and personalinformation One of the strengths of Yahoo! is personalization Enabling users to create, store and share information, and to personalize their experience We are now extending this to third-party applications and Web sites Through secure authentication, we will enable Yahoo! users to get access to Yahoo! data in a way that is ubiquitous , easy , open , and secure
  • 34.
    Yahoo! Search Yourapplication or Web site Retrieve Web search results
  • 35.
    Yahoo! Photos Yourapplication or Web site Retrieve photos Upload, organize, tag and share photos
  • 36.
    Browser-Based Authentication forYahoo! Web Services Provides access to Yahoo! Web services through third-party Web sites How it works: User discovers a third-party Web site User authenticates with Yahoo! (not the third-party developer) Yahoo! sends a token to the developer that enables her to make API calls on the user’s behalf Yahoo! never shares the user name and password with the third-party developer User can revoke permission from the third-party developer at any time
  • 37.
  • 38.
  • 39.
    Yahoo! Application GalleryThe Yahoo! Developer Network’s first consumer-oriented site Showcases applications built using Yahoo! technology Widgets, Web sites, plug-ins, etc. Unifies the (many) disparate collections of applications that have been maintained here and there throughout Yahoo! Flickr, Search, Widgets, Maps, etc., etc.
  • 40.
    Application Gallery FeaturesDevelopers can submit links and descriptions of their applications Add tags to assist with discovery of applications, sites and widgets Users can rate and review applications We’ll feature the highest-rated apps and developers Search for applications powered by the greatest search engine in the world, Yahoo! Search
  • 41.
  • 42.
    What’s Next? Manyof the simple, obvious, read-only integration points with Yahoo! are completed and available today However: What we’ve done to date is only the tip of the iceberg
  • 43.
    Coming Soon: CalendarAPI Yahoo! Calendar enables users to store calendar events, scheduled recurring appointments, share calendars across multiple users, and set alerts The Yahoo! Calendar API enables Calendar integration with your Web site Will utilize Browser-Based Authentication JSON and iCal support coming soon Other formats will appear later in the year
  • 44.
    Coming Soon: Yahoo!Photos API A read/write API for the most popular photo-sharing site in the world, Yahoo! Photos Will utilize Browser-Based Authentication
  • 45.
    Questions? Comments? Yahoo!Developer Network: http://developer.yahoo.net/ My blog: http://mcmanus.typepad.com/ These slides: http://redblazer.com/talks/ Contact me: jeffreymcmanus@yahoo.com