Your SlideShare is downloading. ×
Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

1,373
views

Published on

Learn how to create rich and deeply integrated applications leveraging the 200 million worldwide Windows Live Messenger users. Windows Live Messenger offers a unique platform for building applications …

Learn how to create rich and deeply integrated applications leveraging the 200 million worldwide Windows Live Messenger users. Windows Live Messenger offers a unique platform for building applications that provide a shared experience, such as joint shopping, multi-user gaming, customer support, and more. Windows Live Messenger applications can use a combination of features including BOTS, Alerts, and Activities (which is the application window within Messenger), as well as social networking. Learn about the business opportunities exposed by the Windows Live Messenger platform and details on how to build applications that capitalize on these opportunities.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,373
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Developing Interactive Applications Using Windows Live Robots, Activities, And Alerts Campbell Gunn Program Manager Microsoft Corporation John Kim Pierre Berkaloff BTB025
  • 2. Agenda
    • Introduction
    • Activity Applications
    • Alerts
    • Building and Deploying ‘Bots’
  • 3. Windows Live™ Messenger Platform
    • Build interactive multi-user applications
    • Potential audience of 200 million users
    • Opportunities for business and hobbyist
      • API access free upon accepting TOU
      • Serve ads and share revenue
      • Purchase advertising
      • Pay for placement
    • A new twist on Mash-ups
      • DHTML and AJAX style development
      • Multi-user apps without the pain
  • 4. Windows Live™ Messenger Applications
    • Its all about user interaction and engagement!
    Activities, Bots, Alerts
  • 5. Windows Live™ Messenger Applications
    • Client to Client data xfer
    • Conversation interaction
    • HTTPS for secure data exchange
    • Mashup style applications (DHTML & AJAX)
    Activities , Bots, Alerts Activity Window
  • 6. Windows Live™ Messenger Applications
    • Interact via the conversation, user tile, psm
    • Broad, or domain specific interaction
    • Can be combined with Activity apps
    • Built on 3rd party hosting platforms
    Activities, Bots , Alerts Bot Conversation
  • 7. Windows Live™ Messenger Applications
    • Published via RSS feeds
    • Draw users back into Messenger
    • Launch Activities and Bots from toast
    Activities, Bots, Alerts
  • 8. What Are MSN Alerts?
    • A great new way to deliver information to consumers
    • Up to 10x more effective than simple e-mail *
      • Find where customers are on network, then deliver by
        • MSN Messenger (Desktop Alert and Tab)
        • MSN Hotmail
        • MSN Mobile*
      • A great new way to partner with MSN
        • Drive traffic
        • Reinforce brand
      • Generate revenues
    * Based on 1% average simple email response ** Mobile available in US and Canada only
  • 9. Windows Live Safety Scanner Activity Application ESPBilly Bot And Activity Application
  • 10.  
  • 11. Activity Applications
  • 12. Activity Applications
    • How to Create a Messenger Activity
      • Multi User Activity
        • Sample Code
      • Single User Activity
        • Sample Code
    • Debugging an Activity App
    • Demo-Walk through
  • 13. What Are Activity Apps?
    • One or two user apps built on the Windows Live ™ Messenger communication infrastructure
      • Connect Peer to Peer or through the Windows Live Cloud
      • Work across firewalls and proxies
      • Run in an IE window attached to the Messenger Conversation window
    • Can be hosted on the Internet or intranet
    • Interact with
      • Messenger conversation stream
      • Messenger user Info
    • Launchable from inside or outside Messenger
      • Contact based invitation model
      • Launch ability provisioned by Windows Live ™
  • 14. Messenger Activity Platform
    • Apps can be built using DHTML or ActiveX
    • Development options
      • ASP.NET, C/C++, C#, Visual Basic, VBScript, JScript, HTML, DHTML, XML, and more…
    • Great international support!
      • Windows Live ™ Messenger Worldwide Support
        • 25+ languages
        • 45+ Markets
    • Can be market and/or language specific
  • 15. Design Considerations
    • IE 5.01 or greater required
    • Max window size 500 x 500 pixels
      • Recommended, but now limited
    • Connection Types
      • Indirect – via Messenger cloud
        • 195k per minute
      • Direct – Peer to Peer
        • Limited by connection bandwidth
    • Security considerations require that ActiveX apps be certified by Windows Live
    • No adult, gambling or hateful content
    • Application should include a Help link
  • 16. Messenger Activity Objects
    • External – Parent object
    • Channel – Client to client communication
    • Error – Error code and data
    • FileInfo – File transfer operations
    • Messenger – Dialer and Options dialogs
    • User – User properties
    • Users Collection – Enumerates user list
    Access restricted
  • 17. Activities Architecture Multi (Two) User Activity Activity Application Activity Application Servers
  • 18. Required Definitions Apps must sync these events function Channel_OnRemoteAppLoaded() { // The remote application is loaded and ready; start multiplayer } function Channel_OnRemoteAppClosed() { // Remote application is shutting down; game over } function Channel_OnDataReceived() { // Data received from remote app, inspect value of Channel.Data } function Channel_OnDataError() { // Error during SendData, may need to retry. } function Channel_OnTypeChanged() { // Inspect Channel.Type for the state of the connection (Direct, Indirect, Disconnected) } function Channel_OnAppClose() { // Messenger is shutting down, clean up application }
  • 19. Provisioning Restricted Functionality
    • SendIM
      • Exposes EnterIM & SendIM methods in the Channel object
    • ReceiveIM
      • Exposes OnIMReceived event and IM property (ro)
    • ActiveX
      • load ActiveX controls in local user security context
    • EnableIP
      • Allows access to local & global IP addresses
    • ReplaceIM
      • Exposes OnIMReceived event and IM property (rw)
    • SendFile
      • Exposes file xfer PEMs in the Channel object
    • UserProperties
      • Exposes E-mail and Name in User object
  • 20. Channel Object
    • Properties
    • Data
      • A variant containing the data received from the remote application
    • Error
      • An Error object containing data that could not be delivered
    • FileInfo
      • A FileInfo object that represents a file being sent or received. Requires SendFile permission
    • Type
      • A ConnectionType value representing the type of connection between peers
    • IM (read-only)
      • String containing the instant message that was received and displayed. Requires ReceiveIM permission
    • IM (read-write)
      • String containing the instant message that was received. The message can be changed before it is displayed. Requires ReplaceIM permission
  • 21. Use Of XMLHTTP
    • Given to you with IE 7.0
      • Windows.External.XMLHTTP
    • Allowed with IE 6.0
      • ActiveX control allowed to load
      • CreateObject(XMLHTTP);
    • Pull in dynamic AJAX content into your Application without IFrame manipulation
    • Support for XMLHTTP
      • Get it with Windows Live Messenger Version 8.0
      • MSN Messenger 7.5 and lower needs IE 7.0
  • 22. Building An Activity Application
  • 23. What Is Provisioning?
    • Two step process
      • Enabling you to test your application
      • Making your app available to Windows Live Messenger users
    • Why is provisioning required for Windows Live Messenger Activities.
      • Verify apps use the Activity API properly
      • Verify app compliance with Terms of Use
      • Give Messenger users a great experience
  • 24. Provisioning Settings Creating the msgrp2p.xml file
    • Enables Messenger to load an un - provisioned application for testing
    • Same XML as used by Windows Live Servers
    • Adds item to the “Actions” menu
      • Start (Name)
      • (Name) defined by the Name element
    • Needed on both machines for testing
  • 25. Creating msgrp2p.xml Important values to set
    • EntryID = ‘7’ for test apps
    • Category = ’50’ for test apps
    • Sequence = ’10’ for testing
    • Name = String displayed in Actions menu
    • URL = HTTP address of Activity web page
    • Type
      • App=application
      • Dir=game
    • Height
      • max=500
    • Width
      • max=500
  • 26. Launching An Activity App
    • Launch from Actions menu
      • Start (App Name)
      • Works prior to provisioning
    • Launching From a Web Page
      • Only works after provisioning
      • Invoke Windows Live ™ Messenger by calling:
        • http:// messenger.msn.com/Resource/games.aspx?appID =APPID
      • The APPID value
        • Uniquely represents your Activity app
        • Assigned by Windows Live ™ during provisioning
  • 27. Debugging Setup
    • Enable debugging in IE Advanced Tab
      • Uncheck “Disable script debugging (IE)”
      • Uncheck “Disable script debugging (Other)”
    • Place app and resources on web server
      • Multi-user apps require 2 machines to have 2 Messenger logins
      • Edit msgrp2p.xml to reference web server
    • Place msgrp2p.xml on test machines
      • C:Program FilesMSN Messenger
  • 28. Debugging Tips And Tricks
    • Use VisualStudio 2005.net
    • Have the debugger break post the point where you want to check variables and walk backwards
    • Check the P2P channel occasionally in application
    • JavaScript: Use the “debugger” keyword to start script debugging
    • Place “debugger” keyword at top of page
      • Enables vars in Immediate window, Enables setting breakpoints
    • Use Alerts often
    • Use Channel.SendIM to output debugging text to conversation window
    • Reopen conversation to reload msgrp2p.xml
    • App is reloaded on every invocation
  • 29. Provisioning, Debugging And running Application
  • 30. Alerts
  • 31. What Are MSN Alerts? FREE Real-Time Info Delivery A Killer Communications Platform ! Any Kind of RSS-Triggered Information News Sports Blogs Job hunting Travel Products
  • 32. How Do Users Sign Up?
  • 33. 100% User Opt-In Delivery to: Desktop Email SMS
  • 34. Using PRESENCE, Our Alerts Platform Automatically Finds User With RSS-Triggered Information
  • 35. … Which DRIVES Traffic To Your Platform
  • 36. … And Offers Stunning Click-Thru PERFORMANCE To Almost 200 Million Messenger Users
    • L’Oreal 24% and 35% (Beauty Alerts)
    • MSN Autos 18% (Detroit Auto Show)
    • ILoveMessenger 23% (Contest)
    • Messenger Beta 37% (Upgrade info)
  • 37. MSN Alerts Manager Online App To Manage It All Customize Create Report
  • 38. MSN Alerts Platform Partners Include…
    • Windows Live Expo
    • MSNBC
    • FOX Sports
    • MSN Spaces (Australia)
    • Feedburner
    • MSN Travel
    • Money Central
    • Etc.
  • 39. Best Part ZERO deployment time Please visit http:// SignUp.Alerts.MSN.com or [email_address] for more information MSN Alerts Platform is Free to Developers and Users (Ad Supported)
  • 40. Building And Deploying Windows Live Robots John Kim Pierre Berkaloff
  • 41. IM Robots Are Not Web Sites
      • Conversational nature
      • Rate of growth
      • Traffic patterns
        • Incoming users ramp-up rates at peak times
      • Responsiveness expectations from users
    • Off the shelf Web serving technology is not practical in this environment.
      • Web serving bandwidth constrained
      • IM Bots are CPU constrained/OS limitations constrained
  • 42. Case Study Smarter Child
    • Launched 4 months ago on MSN
      • 300 million+ queries per month
      • 3 million + unique messenger users
      • Traffic at peak times 300 queries per sec
    • never promoted or advertised anywhere
    • viral growth (entirely word of mouth)
    [email_address]
  • 43. What You Need To Build Bots
    • Natural Language Engine
    • Conversational System
    • User Profile
    • Messenger network faceless client supporting latest large range of features
    • All these should be highly scalable and cost effective
  • 44. What You Need Natural language
    • Comprehensive natural language processing engine
      • Highly optimized for IM scale traffic
      • Efficient natural language definition syntax
      • Support for both Static , dynamic (data-driven) and procedural lexical items
    • Automatic binding of user input data to variables
    • Dialog handling
      • Ability to handle complex conversational dialogs
    • Context awareness
      • Giving preference to the current conversation subject
      • Anaphora ( Ex: Can you show it to me ?}
    • Ambiguity resolution
      • recognizes ambiguous queries
      • Prompts user to clarify intent
    • Language Libraries
      • Language Parsing Rules
      • Lexicons
      • Industry specific Extensions
    • Spell Correction
  • 45. What You Need Conversational Centric platform
    • Adaptive output
    • IM centric User Profile Management
    • Logging
    • Usage Reporting
    • Quality Analysis
  • 46. What You Need Messenger Features Support
    • Display Pictures
    • Emoticons
    • Dynamic Display Pictures
    • Pretty Name
    • Personal Messages
    • Backgrounds
    • MSN Activities
      • Ability to invite
      • Accept invitation
      • Transfer information between the bot and the user
      • Page driving
  • 47. Building An Agent
    • Adding Basic Natural Language
    • Starting the Agent
    • Data Feed Binding
    • User Input Binding
    • Adding Conversational Structure
    • Adding Activity Support
  • 48. Adding Basic Natural Language And Conversation Structure
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 49. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 50. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music
  • 51. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 52. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 53. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 54. In Action
    • ? Hello.
    • - Hi ! Nice to see you.
    • ? I am lost
    • ? Help
    • - I am here to get you to discover MSN Music.
  • 55. Data Binding
    • 5 Line binding to a RSS feed:
    • datasource GetMSNMusicFeed() => Title,Description,Link
    • http {timeout="20"}
    • http://music.msn.com/services/rss.aspx?uid=00000002-0000-0000-0000-000000000000
    • simple xml
    • rss
    • channel {loop=content}
    • item {loop=content}
    • title
    • description
    • link
    • Hooking it up to a reference request
    • ? Show me the top 10
    • TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10
    • * Here is the Top 10:
    • - TITLE
    • * more to see more items.
  • 56. In Action (Data Feed)
    • ? Show me the top 10
    • TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10
    • * Here is the Top 10:
    • - TITLE
    • * more to see more items.
  • 57. In Action (Data Feed)
    • ? Show me the top 10
    • TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10
    • * Here is the Top 10:
    • - TITLE
    • * more to see more items.
  • 58. User Input Binding
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 59. In Action (User Input Binding)
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 60. In Action (User Input Binding)
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 61. In Action (User Input Binding)
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 62. In Action (User Input Binding)
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 63. In Action (User Input Binding)
    • subpattern anArtist
    • + eminem
    • + shakira
    • ? Downloads for ARTIST=anArtist
    • - Here are the downloads available for ARTIST
  • 64. In Action (User Input Binding) subpattern anArtist + eminem + shakira ? Downloads for ARTIST=anArtist - Here are the downloads available for ARTIST
  • 65. Adding Conversational Structure Dialogs
    • ? What is the number 1 song?
    • call ShowNumber1Song()
    • - Do you want me to play it for you?
    • ? Yes
      • - call DoPlayMusic(1)
    • ? No
    • - Ok. What would you like to do then?
  • 66. In Action (Dialogs)
    • ? What is the number 1 song?
    • call ShowNumber1Song()
    • - Do you want me to play it for you?
    • ? Yes
      • - call DoPlayMusic(1)
    • ? No
    • - Ok. What would you like to do then?
  • 67. In Action (Dialogs)
    • ? What is the number 1 song?
    • call ShowNumber1Song()
    • - Do you want me to play it for you?
    • ? Yes
      • - call DoPlayMusic(1)
    • ? No
    • - Ok. What would you like to do then?
  • 68. In Action (Dialogs)
    • ? What is the number 1 song?
    • call ShowNumber1Song()
    • - Do you want me to play it for you?
    • ? Yes
      • - call DoPlayMusic(1)
    • ? No
    • - Ok. What would you like to do then?
  • 69. In Action (Dialogs)
    • ? What is the number 1 song?
    • call ShowNumber1Song()
    • - Do you want me to play it for you?
    • ? Yes
      • - call DoPlayMusic(1)
    • ? No
    • - Ok. What would you like to do then?
  • 70. Adding Activity Support
    • Defining which activity to use
    • function overrides MSNSLPGetAgentMainP4ApplicationName()
    • return “ MSNMusic"
    • function overrides MSNSLPGetAgentMainP4ApplicationId()
    • return "99991046" // Application ID
    • Inviting the user
    • ? Invite me again.
    • ? Can you reopen the window?
    • ? Invite me!
    • call MSNSLPSendInvitationToOpenMainP4Application()
    • Sending Data to the Activity
    • Procedure ShowMusicLink(LINK)
    • REQUEST = StringConcat(REQUEST, "url=", LINK)
    • call MSNSLPSendData(REQUEST)
  • 71. In Action (Activity)
  • 72. In Action (Activity)
  • 73. In Action (Activity)
  • 74. In Action (Activity)
  • 75. In Action (Activity)
  • 76. Live Bot Content Management
    • Natural language and conversation structure we have built can be edited/approved and published live
  • 77. Live Editing Reference questions and content
  • 78. Deployment Develop for free - pay to deploy model
    • Develop and Test on your Developer edition
    • When you want to deploy at scale
      • Buy a Server license
    • Or
      • Use Conversagent hosting services
  • 79. Final Thoughts
    • SDK Freely available
    • 6 months up to 50,000 sessions a month
    • Download available at:
      • http:// buddyscript.conversagent.com
    • Contact us at:
      • [email_address]
  • 80. Developer Resources
    • Windows Live™ Messenger Dev Center on MSDN
      • http://msdn.microsoft.com/msn/msnmessenger/
      • Activity API Download
    • Windows Live™ Messenger Discussion Forum on MSDN
      • http://forums.microsoft.com/msdn/showforum.aspx?forumid=112&siteid=1
    • Windows Live™ Messenger Team Space
      • http://spaces.msn.com/messengersays/PersonalSpace.aspx
    • Windows Live™ Alerts Signup
      • http://signup.alerts.msn.com
    • Windows Live™ Business Questions?
      • E-mail: [email_address]
  • 81. © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

×