• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Windows Live Technical Development Series   Part 3
 

Windows Live Technical Development Series Part 3

on

  • 2,010 views

 

Statistics

Views

Total Views
2,010
Views on SlideShare
2,010
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Windows Live Technical Development Series   Part 3 Windows Live Technical Development Series Part 3 Presentation Transcript

  • Windows Live Development Series Session 3: User-Centric Services [presenter info]
  • Series Agenda
    • Session 1: Overview
      • Platform overview, service access, integration
    • Session 2: Site-Centric Services
      • Search, Virtual Earth, Silverlight Streaming, Expo
    • Session 3: User-Centric Services
      • Live ID, Spaces, Photos, Contacts, Messenger, Alerts
  • Session Agenda
    • Live ID
    • Spaces
    • Photos
    • Contacts
    • Messenger
    • Alerts
  • Live ID
    • Provides many advantages over custom authorization
      • User experience
      • Scalability and availability
      • Security
      • Supports CardSpace
    • Multiple implementation options available
      • Client SDK
      • Web SDK
      • Relying Party Suite (RPS) SDK
  • Live ID Authentication Process Browser 3 rd Party Server Live Login Server 1. User requests page 2. Site returns sign-in link or forwards to sign-in page 3. User is directed to login.live.com and signs in using credentials 4. Upon authentication, user is redirected back to original site with a FORM POST parameter 5. Site verifies sign-in by processing FORM POST 6. Site logs user in locally and treats user as authorized
  • Live ID: Client SDK
    • Enables Live ID authentication from non-browser applications
    • Provides Live ID CID that can be used for accessing other services
    • Sample code:
    // These should be kept alive since tickets expire when they dispose. IdentityManager identityManager = IdentityManager .CreateInstance( "AppID" , "AppName" ); Identity identity = identityManager.CreateIdentity( /* Optional username */ ); // Somewhere else in code... if (identity.Authenticate()) { /* Logged in */ } else { /* Authentication failed */ }
  • Live ID: Web SDK
    • Breadth integration Web scenario
      • Easy to set up and configure
      • No account approval
      • No compliance review
    • Each account receives a unique ID for each user upon login
      • Cannot share data behind the scenes
    • Provides single sign-on with other Live services
  • Live Authentication: RPS SDK
    • Depth integration Web scenario
      • Full branding of login.live.com screen
      • Uses common Live ID CID of user
      • Requires significant development and configuration
    • Access to SDK requires Microsoft approval
    • Production deployment requires Microsoft compliance review
  • Spaces Blog APIs
    • URL
      • Sends user to Spaces site to perform tasks
      • BlogIt API
        • http://spaces.live.com/BlogIt.aspx?Title= <BlogTitle> & SourceURL= <URL> &description= <Description>
      • Social Networking APIs
        • Invite Friend
          • http://spaces.live.com/api.aspx?wx_action=/friends.aspx& name= <DisplayName> &cid= <CID>
        • Add Friend
        • View Friend
        • View Pending Requests
    • MetaWeblog
      • Requires Email Publishing to be enabled on Space
  • Spaces RSS Feeds
    • Top Level (all blog entries, albums, and lists)
      • http:// <alias> .spaces.live.com/feed.rss
      • http://spaces.live.com/viewrss.aspx?cid= <CID>
    • Minimal Feed (lists available feeds)
      • http:// <alias> .spaces.live.com/minimal/feed.rss
    • Blog Feeds
      • http:// <alias> .spaces.live.com/blog/feed.rss (all entries)
      • http:// <alias> .spaces.live.com/category/ <CategoryID> /feed.rss (category feed)
      • http:// <alias> .spaces.live.com/blog/ <BlogEntryID> /feed.rss (comments feed)
    • Photo Feeds
      • http:// <alias> .spaces.live.com/photos/feed.rss (all albums feed)
      • http:// <alias> .spaces.live.com/photos/cns! <AlbumID> /feed.rss (album feed)
      • http:// <alias> .spaces.live.com/photos/ <PhotoID> /feed.rss (comments feed)
    • Profile Feed (lists published user data, such as display and contact info)
      • http:// <alias> .spaces.live.com/profile/feed.rss
    • Friends Feed (lists published friends)
      • http:// <alias> .spaces.live.com/friends/feed.rss
    • List Feeds (lists published lists)
      • http:// <alias> .spaces.live.com/lists/cns! <ListID> /feed.rss
      • http:// <alias> .spaces.live.com/Music/cns! <ListID> /feed.rss
  • Spaces Photo APIs
    • Control
    • URLs & images may not be cached for more than 30 days per TOU
  • Spaces Photos Control < html xmlns =&quot;http://www.w3.org/1999/xhtml&quot; xmlns : devlive =&quot;http://dev.live.com&quot;> < body > < script type =&quot;text/javascript&quot; src =&quot;http://controls.services.live.com/scripts/base/v0.3/live.js&quot; /> < script type =&quot;text/javascript&quot; src =&quot;http://controls.services.live.com/scripts/base/v0.3/controls.js&quot; /> < script type =&quot;text/javascript&quot;> function signIn() { } function signOut() { } function showError(message) { } function receiveData(photoData) { alert(photoData[0].fileExpiringURL); } </ script > < devlive : spacescontrol id =&quot;SpacesControl&quot; devlive : privacyStatementURL =&quot;http://g.msn.com/2privacy/enus&quot; devlive : market =&quot;en&quot; devlive : dataDesired =&quot; fileExpiringURL,fileAccessControlledURL &quot; devlive : onSignin =&quot;signIn&quot; devlive : onSignout =&quot;signOut&quot; devlive : onError =&quot;showError&quot; devlive : onData =&quot;receiveData&quot; devlive : channelEndpointURL =&quot;channel.htm&quot; /> </ body > </ html >
  • Contacts
    • 3 levels of integration
      • Hands-off
        • Provide control for “Tell a friend” features
      • Light
        • Use control callbacks to retrieve user selected data
        • Use AJAX to pull data back to server if needed
      • Deep
        • Use REST API to access virtually anything
    • Emails and data may not be cached for more than 30 days per TOU
  • Contacts Control < html xmlns =&quot;http://www.w3.org/1999/xhtml&quot; xmlns : devlive =&quot;http://dev.live.com&quot;> < body > < script type =&quot;text/javascript&quot; src =&quot;http://controls.services.live.com/scripts/base/v0.3/live.js&quot;></ script > < script type =&quot;text/javascript&quot; src =&quot;http://controls.services.live.com/scripts/base/v0.3/controls.js&quot;></ script > < script type =&quot;text/javascript&quot;> function signIn() { } function signOut() { } function showError(message) { } function receiveData(contactData) { alert(contactData[0].Email); } </ script > < devlive : contactscontrol id =&quot;ContactsControl&quot; devlive : view =&quot; tileList &quot; devlive : market =&quot;en&quot; devlive : onSignIn =&quot;signIn&quot; devlive : onSignOut =&quot;signOut&quot; devlive : onError =&quot;showError&quot; devlive : onData =&quot;receiveData&quot; devlive : dataDesired =&quot; name,email &quot; devlive : channelEndpointURL =&quot;channel.htm&quot; /> </ body > </ html >
  • Messenger Presence & Web IM
    • Presence
    • Web IM
      • Double blind anonymity
  • Messenger Agents
    • Request access via http://dev.live.com/agents/pilot.aspx
    • Use BuddyScript to develop discussion guides
    • Support for SOAP, file data, and other data sources
    • Encarta agent: encarta@botmetro.net
  • More Messenger Integration Points
    • Activities
      • JavaScript API
    • Add-ins
    • Content
      • Emoticons, winks, backgrounds, etc
  • Alerts
    • Setup
      • Email [email_address] for access
      • API access locked down by IP
    • SOAP API
    • RSS
  • Sample Alert Signup Process Browser 3 rd Party Server Alerts Server 1. User asks to sign up for Alert on 3 rd party site 2. Site asks Alerts for URL to register user for Alerts using a site-unique username 3. Alerts provides URL for user to configure Alerts delivery options 4. Site provides configuration URL to user 5. User visits Alerts site to select delivery options 6. User is returned to URL provided by 3 rd party site
  • Sample Alert Delivery Process Browser 3 rd Party Server Alerts Server 1. Message invoked by user or other source 2. Site calls SOAP API with message details 3. Alerts delivers messages to user-specified endpoints
  • Summary
    • Live ID
    • Spaces
    • Photos
    • Contacts
    • Messenger
    • Alerts