• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
YAP / Open Mail Overview
 

YAP / Open Mail Overview

on

  • 2,715 views

Overview deck for the foundations of the Yahoo! Application Platform and a general overview of Open Mail

Overview deck for the foundations of the Yahoo! Application Platform and a general overview of Open Mail

Statistics

Views

Total Views
2,715
Views on SlideShare
2,660
Embed Views
55

Actions

Likes
0
Downloads
9
Comments
1

5 Embeds 55

http://developer.yahoo.net 38
http://lanyrd.com 7
http://developer.yahoo.com 6
http://www.slideshare.net 3
http://feeds.developer.yahoo.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Community Resources Helping you be successful in using Yahoo! Web Services isn't just about code and documentation. We want to make it easy for developers to get in touch with us and others who are using our services to answer and ask questions, toss around ideas, and give your feedback on what services we could offer next. Forums YDN General Boards Design Patterns HotJobs Search YOS APT Music Widgets GeoPlanet OpenID Y! Groups Address Book Answers FireEagle Del.icio.us Traffic Flickr Mail Search BOSS Maps JavaScript Silverlight Merchant Solutions Search Marketing Exceptional Performance YUI Java .Net Flash YDN EU Auth PHP Python Ruby Perl Events Want your tech event appear in the YDN 'Upcoming Events' stream on developer.yahoo.com homepage? List your event on Upcoming and then add it to the Yahoo! Developer Network group on Upcoming. If you are setting up a tech event for developers or designers and would like some Yahoo! involvement, please contact us . Experts Yahoo! Developer Network is on the lookout for experts to share knowledge and help grow our developer communities. If you are interested in applying to moderate a *group* or forum and become an official expert, please contact us for more information. Remember, we pay in hugs, link-love and schwag only. Blog The YDN blog is where we talk about our various Yahoo! developer offerings and YDN events around the world. Your comments welcome. If you have a suggestion for the blog or a blog post you'd like to write about your experiences using our APIs or services, let us know. We are particularly interested in posts using Yahoo! APIs, tools, webservices and coverage of tech events. If you need inspiration or want to run some ideas by us, please contact us . YDN Theater YDN Theater is chock-full of API deep dives, developer interviews, cutting- edge technologies, and recaps of tech events you wish you hadn't missed. If you have an idea for a story, please contact us .
  • Community Resources Helping you be successful in using Yahoo! Web Services isn't just about code and documentation. We want to make it easy for developers to get in touch with us and others who are using our services to answer and ask questions, toss around ideas, and give your feedback on what services we could offer next. Forums YDN General Boards Design Patterns HotJobs Search YOS APT Music Widgets GeoPlanet OpenID Y! Groups Address Book Answers FireEagle Del.icio.us Traffic Flickr Mail Search BOSS Maps JavaScript Silverlight Merchant Solutions Search Marketing Exceptional Performance YUI Java .Net Flash YDN EU Auth PHP Python Ruby Perl Events Want your tech event appear in the YDN 'Upcoming Events' stream on developer.yahoo.com homepage? List your event on Upcoming and then add it to the Yahoo! Developer Network group on Upcoming. If you are setting up a tech event for developers or designers and would like some Yahoo! involvement, please contact us . Experts Yahoo! Developer Network is on the lookout for experts to share knowledge and help grow our developer communities. If you are interested in applying to moderate a *group* or forum and become an official expert, please contact us for more information. Remember, we pay in hugs, link-love and schwag only. Blog The YDN blog is where we talk about our various Yahoo! developer offerings and YDN events around the world. Your comments welcome. If you have a suggestion for the blog or a blog post you'd like to write about your experiences using our APIs or services, let us know. We are particularly interested in posts using Yahoo! APIs, tools, webservices and coverage of tech events. If you need inspiration or want to run some ideas by us, please contact us . YDN Theater YDN Theater is chock-full of API deep dives, developer interviews, cutting- edge technologies, and recaps of tech events you wish you hadn't missed. If you have an idea for a story, please contact us .
  • - Social, Contacts, Updates, Status APIs
  • - Social, Contacts, Updates, Status APIs
  • - Social, Contacts, Updates, Status APIs
  • http://developer.yahoo.com/oauth/ https://developer.yahoo.com/oauth/guide/ http://oauth.net/ OAuth Authentication Model OAuth is a simple, secure, and quick way to publish and access protected data (photos, videos, contact list). It's an open authentication model based primarily on existing standards that ensures secure credentials can be provisioned and verified by different software platforms. In other words, OAuth allows you to share your private resources stored on one site with another site without having to hand out your user name and password. For a visitor to your site, OAuth is completely transparent. The user experience will be specific to the implementation of both the site requesting access and the one storing the resources, and will adjust to the device being used (web browser, mobile phone, PDA, set-top box). Example user flow: A developer has created an application which will allow his users to represent their presence using the Yahoo! Status web service. Once the developer signs up for an OAuth API Key and Secret (provided by Yahoo!), they may access Yahoo's OAuth API to establish the credentials used to access this data from Yahoo! Status. When a user interacts with the developer's application, they are redirected to Yahoo's authentication page, where they sign into their Yahoo! account, then grant the application access to their Yahoo! Status data. A user-authorized token is returned to the application which can be used to access this data. How Do I Get Started? Get an API Key Read the online documentation Get our PHP SDK or Flash SDK (optional) Using the API or Web Service For an illustration of the OAuth authentication flow, check out the Yahoo! OAuth Quick Start Guide . In order to communicate with their target user's Yahoo services through OAuth, developers must first authenticate requests using Yahoo! OAuth. Here are the steps you take to enable users to access your application: 1) Sign Up and Get your API Key 2) Get a Request Token 3) Get User Approval 4) Exchange the Request Token for an Access Token Support and Community Questions and suggestions on the OAuth API are discussed on the Yahoo! OAuth Developer Community forum . If you have questions or need technical support, please use this forum. Terms of Use Use of the Yahoo! OAuth API is governed by the Yahoo! APIs Terms of Use . The OAuth Standard Yahoo!'s OAuth implementation is fully compliant with OAuth Core 1.0 and the OAuth Session Extension draft (1). In order to support OAuth in a scalable way, Yahoo! proposed and helped create the OAuth Session Extension together with AOL and Google. The extension is currently being added to all the major OAuth client libraries as well as the Y!OS SDK. For more information on the standard, visit: http://oauth.net/ .
  • Missed connections, this is how you find them.
  • Community Resources Helping you be successful in using Yahoo! Web Services isn't just about code and documentation. We want to make it easy for developers to get in touch with us and others who are using our services to answer and ask questions, toss around ideas, and give your feedback on what services we could offer next. Forums YDN General Boards Design Patterns HotJobs Search YOS APT Music Widgets GeoPlanet OpenID Y! Groups Address Book Answers FireEagle Del.icio.us Traffic Flickr Mail Search BOSS Maps JavaScript Silverlight Merchant Solutions Search Marketing Exceptional Performance YUI Java .Net Flash YDN EU Auth PHP Python Ruby Perl Events Want your tech event appear in the YDN 'Upcoming Events' stream on developer.yahoo.com homepage? List your event on Upcoming and then add it to the Yahoo! Developer Network group on Upcoming. If you are setting up a tech event for developers or designers and would like some Yahoo! involvement, please contact us . Experts Yahoo! Developer Network is on the lookout for experts to share knowledge and help grow our developer communities. If you are interested in applying to moderate a *group* or forum and become an official expert, please contact us for more information. Remember, we pay in hugs, link-love and schwag only. Blog The YDN blog is where we talk about our various Yahoo! developer offerings and YDN events around the world. Your comments welcome. If you have a suggestion for the blog or a blog post you'd like to write about your experiences using our APIs or services, let us know. We are particularly interested in posts using Yahoo! APIs, tools, webservices and coverage of tech events. If you need inspiration or want to run some ideas by us, please contact us . YDN Theater YDN Theater is chock-full of API deep dives, developer interviews, cutting- edge technologies, and recaps of tech events you wish you hadn't missed. If you have an idea for a story, please contact us .
  • There’s a progression here: We were always looking for apps that were a natural fit; this is about

YAP / Open Mail Overview YAP / Open Mail Overview Presentation Transcript

  • Application Platforms on Yahoo! Yahoo! Application Platform and Open Mail Jonathan LeBlanc Technology Evangelist Yahoo! Developer Network Twitter: @jcleblanc
    • EXAMPLES | TUTORIALS | CODE SAMPLES
    DEVELOPER.YAHOO.COM
  • The Yahoo! Application Platform (YAP)
  •  
  •  
  •  
  • Open ID – Single Account Sign-in
  • OAuth - Open Authentication
  •  
  • SDKs (Software Development Kits)
    • PHP, Python, Java, ActionScript 3,
    • Objective-C, and OpenSocial REST APIs
    • http://www.github.com/yahoo
  • OAuth – What Does the End-User See?
  • OAuth – What Does the End-User See?
  • What is OpenSocial?
    • OpenSocial API
      • For developing applications on social networks
        • Accessing social data (profiles, connections)
        • Fetching and inserting activities
      • Implemented by many containers
        • Develop once, distribute broadly
  • Fetching User Data & Making Requests
    • Examples for OpenSocial & PHP
      • Fetching Profiles
      • Fetching and Inserting Updates
      • Fetching Connections
      • Making AJAX Requests
  •  
  • Collecting User Data With PHP & OpenSocial 0.8 $session = YahooSession:: requireSession ($key, $secret, $app_id) $user = $session-> getSessionedUser (); $profile = $user-> getProfile (); ----------------------------------------------------------------------------------------------- var req = opensocial.newDataRequest() ; var params = {}; params[ opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS ] = [ opensocial.Person.Field.NAME , opensocial.Person.Field.THUMBNAIL_URL ]; req.add(req. newFetchPersonRequest ('VIEWER', params), 'viewer_profile'); req.send(response);
  • Fetching Updates With PHP & OpenSocial 0.8
  • Getting Updates With PHP & OpenSocial 0.8
    • $session = YahooSession:: requireSession ($key, $secret, $app_id)
    • $user = $session-> getSessionedUser ();
    • $updates = $user-> getUpdates ();
    • -------------------------------------------------------------------------------
    • var req = opensocial.newDataRequest();
    • var spec = new opensocial.IdSpec ();
    • spec.setField (opensocial.IdSpec.Field.USER_ID, opensocial.IdSpec.PersonId.OWNER);
    • req.add(req. newFetchActivitiesRequest (spec), 'ownerActivities');
    • req.send(handleActivities);
  • Inserting Updates With PHP & OpenSocial 0.8
    • $session = YahooSession:: requireSession ($key, $secret, $app_id)
    • $user = $session-> getSessionedUser ();
    • $update = $user-> insertUpdate ($suid, $title, $link, $description);
    • ---------------------------------------------------------------------------------
    • var params = {}, activity;
    • params[ opensocial.Activity.Field.TITLE ] = title;
    • params[ opensocial.Activity.Field.BODY ] = body;
    • activity = opensocial.newActivity (params);
    • opensocial.requestCreateActivity (
    • activity,
    • opensocial.CreateActivityPriority.LOW,
    • callback);
  • Fetching Connections With PHP & OpenSocial 0.8
  • Fetching Connections With PHP & OpenSocial 0.8
    • $session = YahooSession::requireSession($key, $secret, $app_id)
    • $user = $session->getSessionedUser();
    • $connections = $user->getConnections();
    • ----------------------------------------------------------------------------
    • var idspec = opensocial.newIdSpec ({ 'userId' : 'OWNER', 'groupId' : 'FRIENDS' });
    • var req = opensocial.newDataRequest();
    • req.add( req.newFetchPersonRequest ('OWNER'), 'get_owner');
    • req.add( req.newFetchPeopleRequest (idspec), 'get_friends');
    • req.send(responseFriends);
  • Making YQL Requests With PHP & OpenSocial 0.8
    • $application = new YahooApplication ($key, $secret);
    • $results = $application-> query (
    • ‘ select * from delicious.feeds.popular’);
  • Making YQL Requests With PHP & OpenSocial 0.8
    • var params = {};
    • var url = ' http://developer.yahoo.com/yql/console/?q=select%20*%20from%20flickr.photos.search%20where%20text%3D%22Times%20Square%22 '
    • var callback = callbackFunc;
    • params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT ;
    • params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET ;
    • gadgets.io.makeRequest (url, callback, params);
  • Front-end Security
  • Front-end Security: Caja
    • Caja Security
    • Very secure model (blacklist all)
    • Aims to protect end-users
    • Full content control
    • IFrame Concerns
    • Drive-by downloads
    • No content restrictions
    • Other known exploits
  • Front-end Security: Caja Cajoling Process
    • <script type=&quot;text/javascript&quot;>
    • function response(obj) {
    • if (obj.text){
    • document.getElementById('interact').setInnerHTML('Populated!');
    • document.getElementById('population').setInnerHTML(obj.errors);
    • }
    • }
    • </script>
  • Front-end Security: Caja Cajoling Process
    • var $dis = $v.getOuters();
    • $v.initOuter('onerror');
    • $v.so('response', ___.markFuncFreeze(function () {
    • function response$_caller($dis, obj) {
    • if ($v.r(obj, 'text')) {
    • $v.cm($v.cm($v.ro('document'), 'getElementById', [ 'interact' ]),
    • 'setInnerHTML', [ 'Populated!' ]);
    • $v.cm($v.cm($v.ro('document'), 'getElementById', [ 'population' ]),
    • 'setInnerHTML', [ $v.r(obj, 'errors') ]);
    • }
    • }
    • response$_caller.FUNC___ = 'response$_caller';
    • var response;;
    • response = $v.dis(___.primFreeze(response$_caller), 'response');
    • return response;
  • Open Mail
  • Apps are self contained
  • “Plug-ins” implicitly enhance experience
  • Today ?
  • Contextual plugins X Large File Attachment Your file is over 25MB. Would you like to upload and create a link to your large file? OK
  • Contextual plugins Flickr photo(s) Past files Yahoo! Map
  • And the ideas get crazier….
  • Active Mail
  • An evolution, not a revolution
    • We always looked for developers to build features that were a natural fit
    • This semantic shift represents enhancements to the invocation point, not radical changes in the functionality
    • e.g. contextually launch “Share Attachments”
    • e.g. invoke Picnik contextually OnCompose
    • e.g. detect an invitation and gently suggest upgrade to Evite
  • Flexible API for Mail feature development
      • Flickr
      • Groups
      • MyPhotos (formerly Xoopit)
      • Wretch
      • Third-party companies, as appropriate
  • What we are NOT doing
  • Questions?