developing interactive applications using windows live robots, activities, and alerts

81
Developing Developing Interactive Interactive Applications Using Applications Using Windows Live Robots, Windows Live Robots, Activities, And Activities, And Alerts Alerts Campbell Gunn Campbell Gunn Program Manager Program Manager Microsoft Microsoft Corporation Corporation John Kim John Kim Pierre Pierre Berkaloff Berkaloff BTB025 BTB025

Upload: goodfriday

Post on 26-May-2015

1.392 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Developing Interactive Developing Interactive Applications Using Applications Using Windows Live Robots, Windows Live Robots, Activities, And AlertsActivities, And AlertsCampbell GunnCampbell GunnProgram ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation

John KimJohn KimPierre Berkaloff Pierre Berkaloff

BTB025BTB025

Page 2: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

AgendaAgenda

IntroductionIntroduction

Activity ApplicationsActivity Applications

AlertsAlerts

Building and Deploying ‘Bots’Building and Deploying ‘Bots’

Page 3: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Windows Live™ Messenger Windows Live™ Messenger PlatformPlatform

Build interactive multi-user applicationsBuild interactive multi-user applicationsPotential audience of 200 million usersPotential audience of 200 million usersOpportunities for business and hobbyistOpportunities for business and hobbyist

API access free upon accepting TOUAPI access free upon accepting TOUServe ads and share revenueServe ads and share revenuePurchase advertisingPurchase advertisingPay for placementPay for placement

A new twist on Mash-upsA new twist on Mash-upsDHTML and AJAX style developmentDHTML and AJAX style developmentMulti-user apps without the painMulti-user apps without the pain

Page 4: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Windows Live™ Messenger Windows Live™ Messenger ApplicationsApplications

Its all about user interaction Its all about user interaction and engagement!and engagement!

Activities, Bots, AlertsActivities, Bots, Alerts

Page 5: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Activity Window

Windows Live™ Messenger Windows Live™ Messenger ApplicationsApplications

Client to Client data xferClient to Client data xferConversation interactionConversation interactionHTTPS for secure data exchangeHTTPS for secure data exchangeMashup style applications (DHTML & AJAX)Mashup style applications (DHTML & AJAX)

ActivitiesActivities, Bots, Alerts, Bots, Alerts

Page 6: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Interact via the conversation, user tile, psmInteract via the conversation, user tile, psmBroad, or domain specific interactionBroad, or domain specific interactionCan be combined with Activity appsCan be combined with Activity appsBuilt on 3rd party hosting platformsBuilt on 3rd party hosting platforms

Bot Conversation

Windows Live™ Messenger Windows Live™ Messenger ApplicationsApplications

Activities, Activities, BotsBots, Alerts, Alerts

Page 7: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Published via RSS feedsPublished via RSS feeds

Draw users back into MessengerDraw users back into Messenger

Launch Activities and Bots from toastLaunch Activities and Bots from toast

Windows Live™ Messenger Windows Live™ Messenger ApplicationsApplications

Activities, Bots, Activities, Bots, AlertsAlerts

Page 8: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What Are MSN Alerts?What Are MSN Alerts?

A great new way to deliver information to consumersA great new way to deliver information to consumers

Up to 10x more effective than simple e-mail *Up to 10x more effective than simple e-mail *

Find where customers are on network, Find where customers are on network, then deliver bythen deliver by

MSN Messenger (Desktop Alert and Tab)MSN Messenger (Desktop Alert and Tab)MSN HotmailMSN HotmailMSN Mobile*MSN Mobile*

A great new way to partner with MSNA great new way to partner with MSNDrive trafficDrive trafficReinforce brandReinforce brand

Generate revenuesGenerate revenues

* Based on 1% average simple email response** Mobile available in US and Canada only

Page 9: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Windows Live Safety Scanner Activity Windows Live Safety Scanner Activity ApplicationApplicationESPBilly Bot And Activity ApplicationESPBilly Bot And Activity Application

Page 10: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts
Page 11: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Activity ApplicationsActivity Applications

Page 12: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Activity ApplicationsActivity Applications

How to Create a Messenger ActivityHow to Create a Messenger ActivityMulti User ActivityMulti User Activity

Sample CodeSample Code

Single User ActivitySingle User ActivitySample CodeSample Code

Debugging an Activity AppDebugging an Activity App

Demo-Walk throughDemo-Walk through

Page 13: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What Are Activity Apps?What Are Activity Apps?

One or two user apps built on the Windows LiveOne or two user apps built on the Windows Live™™ Messenger communication infrastructureMessenger communication infrastructure

Connect Peer to Peer or through the Windows Live CloudConnect Peer to Peer or through the Windows Live Cloud

Work across firewalls and proxiesWork across firewalls and proxies

Run in an IE window attached to the Messenger Run in an IE window attached to the Messenger Conversation windowConversation window

Can be hosted on the Internet or intranetCan be hosted on the Internet or intranet

Interact withInteract withMessenger conversation streamMessenger conversation stream

Messenger user InfoMessenger user Info

Launchable from inside or outside MessengerLaunchable from inside or outside MessengerContact based invitation modelContact based invitation model

Launch ability provisioned by Windows LiveLaunch ability provisioned by Windows Live™™

Page 14: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Messenger Activity PlatformMessenger Activity Platform

Apps can be built using DHTML or ActiveXApps can be built using DHTML or ActiveX

Development optionsDevelopment optionsASP.NET, C/C++, C#, Visual Basic, VBScript, ASP.NET, C/C++, C#, Visual Basic, VBScript, JScript, HTML, DHTML, XML, and more…JScript, HTML, DHTML, XML, and more…

Great international support!Great international support!Windows LiveWindows Live™™ Messenger Worldwide Support Messenger Worldwide Support

25+ languages25+ languages

45+ Markets45+ Markets

Can be market and/or language specificCan be market and/or language specific

Page 15: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Design ConsiderationsDesign Considerations

IE 5.01 or greater requiredIE 5.01 or greater requiredMax window size 500 x 500 pixelsMax window size 500 x 500 pixels

Recommended, but now limitedRecommended, but now limited

Connection TypesConnection TypesIndirect – via Messenger cloudIndirect – via Messenger cloud

195k per minute195k per minute

Direct – Peer to PeerDirect – Peer to PeerLimited by connection bandwidthLimited by connection bandwidth

Security considerations require that ActiveX Security considerations require that ActiveX apps be certified by Windows Liveapps be certified by Windows LiveNo adult, gambling or hateful contentNo adult, gambling or hateful contentApplication should include a Help linkApplication should include a Help link

Page 16: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Messenger Activity ObjectsMessenger Activity Objects

External – Parent objectExternal – Parent object

Channel – Client to client communicationChannel – Client to client communication

Error – Error code and dataError – Error code and data

FileInfo – File transfer operationsFileInfo – File transfer operations

Messenger – Dialer and Options dialogsMessenger – Dialer and Options dialogs

User – User propertiesUser – User properties

Users Collection – Enumerates user listUsers Collection – Enumerates user list

Access restrictedAccess restricted

Page 17: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Activities ArchitectureActivities Architecture

Multi (Two) User ActivityMulti (Two) User Activity

Activity Application

Activity Application

ServersServers

Page 18: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

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

}

Required DefinitionsRequired DefinitionsApps must sync these eventsApps must sync these events

Page 19: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Provisioning Restricted FunctionalityProvisioning Restricted Functionality

SendIMSendIMExposes EnterIM & SendIM methods in the Channel objectExposes EnterIM & SendIM methods in the Channel object

ReceiveIMReceiveIMExposes OnIMReceived event and IM property (ro)Exposes OnIMReceived event and IM property (ro)

ActiveXActiveXload ActiveX controls in local user security contextload ActiveX controls in local user security context

EnableIPEnableIPAllows access to local & global IP addressesAllows access to local & global IP addresses

ReplaceIMReplaceIMExposes OnIMReceived event and IM property (rw)Exposes OnIMReceived event and IM property (rw)

SendFileSendFileExposes file xfer PEMs in the Channel objectExposes file xfer PEMs in the Channel object

UserPropertiesUserPropertiesExposes E-mail and Name in User objectExposes E-mail and Name in User object

Page 20: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Channel ObjectChannel Object

PropertiesProperties

DataDataA variant containing the data received from the remote applicationA variant containing the data received from the remote application

ErrorErrorAn Error object containing data that could not be deliveredAn Error object containing data that could not be delivered

FileInfoFileInfoA FileInfo object that represents a file being sent or received. Requires A FileInfo object that represents a file being sent or received. Requires SendFile permissionSendFile permission

TypeTypeA ConnectionType value representing the type of connection between peersA ConnectionType value representing the type of connection between peers

IM (read-only)IM (read-only)String containing the instant message that was received and displayed. String containing the instant message that was received and displayed. Requires ReceiveIM permissionRequires ReceiveIM permission

IM (read-write)IM (read-write)String containing the instant message that was received. The message can String containing the instant message that was received. The message can be changed before it is displayed. Requires ReplaceIM permissionbe changed before it is displayed. Requires ReplaceIM permission

Page 21: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Use Of XMLHTTPUse Of XMLHTTP

Given to you with IE 7.0Given to you with IE 7.0Windows.External.XMLHTTPWindows.External.XMLHTTP

Allowed with IE 6.0Allowed with IE 6.0ActiveX control allowed to loadActiveX control allowed to load

CreateObject(XMLHTTP);CreateObject(XMLHTTP);

Pull in dynamic AJAX content into your Pull in dynamic AJAX content into your Application without IFrame manipulationApplication without IFrame manipulation

Support for XMLHTTPSupport for XMLHTTPGet it with Windows Live Messenger Version 8.0Get it with Windows Live Messenger Version 8.0

MSN Messenger 7.5 and lower needs IE 7.0MSN Messenger 7.5 and lower needs IE 7.0

Page 22: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Building An Activity Building An Activity ApplicationApplication

Page 23: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What Is Provisioning?What Is Provisioning?

Two step processTwo step processEnabling you to test your applicationEnabling you to test your application

Making your app available to Making your app available to Windows Live Messenger usersWindows Live Messenger users

Why is provisioning required for Why is provisioning required for Windows Live Messenger Activities.Windows Live Messenger Activities.

Verify apps use the Activity API properlyVerify apps use the Activity API properly

Verify app compliance with Terms of UseVerify app compliance with Terms of Use

Give Messenger users a great experienceGive Messenger users a great experience

Page 24: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Provisioning SettingsProvisioning SettingsCreating the msgrp2p.xml fileCreating the msgrp2p.xml file

Enables Messenger to load an unEnables Messenger to load an un--provisioned application for testingprovisioned application for testing

Same XML as used by Windows Live Same XML as used by Windows Live ServersServers

Adds item to the “Actions” menuAdds item to the “Actions” menuStart (Name)Start (Name)

(Name) defined by the Name element(Name) defined by the Name element

Needed on both machines for testingNeeded on both machines for testing

Page 25: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Creating msgrp2p.xmlCreating msgrp2p.xmlImportant values to setImportant values to set

EntryID = ‘7’ for test appsEntryID = ‘7’ for test appsCategory = ’50’ for test appsCategory = ’50’ for test appsSequence = ’10’ for testingSequence = ’10’ for testingName = String displayed in Actions menuName = String displayed in Actions menuURL = HTTP address of Activity web pageURL = HTTP address of Activity web pageTypeType

App=applicationApp=applicationDir=gameDir=game

HeightHeightmax=500max=500

WidthWidthmax=500max=500

Page 26: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Launching An Activity AppLaunching An Activity App

Launch from Actions menuLaunch from Actions menuStart (App Name)Start (App Name)

Works prior to provisioningWorks prior to provisioning

Launching From a Web PageLaunching From a Web PageOnly works after provisioningOnly works after provisioning

Invoke Windows LiveInvoke Windows Live™™ Messenger by calling: Messenger by calling:http://http://messenger.msn.com/Resource/games.aspx?appIDmessenger.msn.com/Resource/games.aspx?appID=APPID=APPID

The APPID valueThe APPID valueUniquely represents your Activity appUniquely represents your Activity app

Assigned by Windows LiveAssigned by Windows Live™™ during provisioning during provisioning

Page 27: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Debugging SetupDebugging Setup

Enable debugging in IE Advanced TabEnable debugging in IE Advanced TabUncheck “Disable script debugging (IE)”Uncheck “Disable script debugging (IE)”

Uncheck “Disable script debugging Uncheck “Disable script debugging (Other)”(Other)”

Place app and resources on web serverPlace app and resources on web serverMulti-user apps require 2 machines to Multi-user apps require 2 machines to have 2 Messenger loginshave 2 Messenger logins

Edit msgrp2p.xml to reference web serverEdit msgrp2p.xml to reference web server

Place msgrp2p.xml on test machinesPlace msgrp2p.xml on test machinesC:\Program Files\MSN MessengerC:\Program Files\MSN Messenger

Page 28: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Debugging Tips And TricksDebugging Tips And Tricks

Use VisualStudio 2005.netUse VisualStudio 2005.netHave the debugger break post the point where you Have the debugger break post the point where you want to check variables and walk backwardswant to check variables and walk backwardsCheck the P2P channel occasionally in applicationCheck the P2P channel occasionally in applicationJavaScript: Use the “debugger” keyword to start JavaScript: Use the “debugger” keyword to start script debuggingscript debuggingPlace “debugger” keyword at top of pagePlace “debugger” keyword at top of page

Enables vars in Immediate window, Enables setting Enables vars in Immediate window, Enables setting breakpointsbreakpoints

Use Alerts oftenUse Alerts oftenUse Channel.SendIM to output debugging text to Use Channel.SendIM to output debugging text to conversation windowconversation windowReopen conversation to reload msgrp2p.xmlReopen conversation to reload msgrp2p.xmlApp is reloaded on every invocationApp is reloaded on every invocation

Page 29: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Provisioning, Debugging Provisioning, Debugging And running ApplicationAnd running Application

Page 30: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

AlertsAlerts

Page 31: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What Are MSN Alerts?What Are MSN Alerts? FREE Real-Time Info DeliveryA Killer Communications Platform !

New

s

Sp

ort

s

Blo

gs

Job

hu

nti

ng

Tra

vel

Pro

du

cts

Any Kind of RSS-Triggered Information

Page 32: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

How Do Users Sign Up?How Do Users Sign Up?

Page 33: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

100% User Opt-In100% User Opt-In

Delivery to:Delivery to:

DesktopDesktopEmailEmailSMSSMS

Page 34: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Using PRESENCE, Our Alerts Platform Using PRESENCE, Our Alerts Platform Automatically Automatically FindsFinds User With User With RSS-Triggered RSS-Triggered InformationInformation

Page 35: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

… … Which DRIVES Traffic To Which DRIVES Traffic To Your PlatformYour Platform

Page 36: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

… … And Offers Stunning Click-Thru And Offers Stunning Click-Thru PERFORMANCE To Almost 200 Million PERFORMANCE To Almost 200 Million Messenger UsersMessenger Users

L’Oreal L’Oreal 24%24% andand 35%35% (Beauty Alerts)(Beauty Alerts)

MSN AutosMSN Autos 18%18% (Detroit Auto Show)(Detroit Auto Show)

ILoveMessengerILoveMessenger 23%23% (Contest)(Contest)

Messenger BetaMessenger Beta 37%37% (Upgrade info)(Upgrade info)

Page 37: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

MSN Alerts ManagerMSN Alerts ManagerOnline App To Manage It AllOnline App To Manage It All

CustomizeCustomize

CreateCreate

ReportReport

Page 38: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

MSN Alerts Platform MSN Alerts Platform Partners Include…Partners Include…

Windows Live ExpoWindows Live ExpoMSNBCMSNBCFOX SportsFOX SportsMSN Spaces (Australia)MSN Spaces (Australia)FeedburnerFeedburnerMSN TravelMSN TravelMoney CentralMoney CentralEtc.Etc.

Page 39: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Best Part Best Part ZERO deployment timeZERO deployment time

Please visit http://SignUp.Alerts.MSN.com

or [email protected] for more information

MSN Alerts Platform is MSN Alerts Platform is FreeFree to Developers to Developers and Users (Ad Supported)and Users (Ad Supported)

Page 40: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Building And Deploying Building And Deploying Windows Live Robots Windows Live Robots

John KimJohn KimPierre BerkaloffPierre Berkaloff

Page 41: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

IM Robots Are Not Web SitesIM Robots Are Not Web Sites

Conversational natureConversational nature

Rate of growthRate of growth

Traffic patternsTraffic patternsIncoming users ramp-up rates at peak timesIncoming users ramp-up rates at peak times

Responsiveness expectations from usersResponsiveness expectations from users

Off the shelf Web serving technology is not Off the shelf Web serving technology is not practical in this environment.practical in this environment.

Web serving bandwidth constrainedWeb serving bandwidth constrained

IM Bots are CPU constrained/OS limitations IM Bots are CPU constrained/OS limitations constrainedconstrained

Page 42: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Case StudyCase StudySmarter ChildSmarter Child

Launched 4 months ago on MSNLaunched 4 months ago on MSN300 million+ queries per month300 million+ queries per month

3 million + unique messenger users 3 million + unique messenger users

Traffic at peak times 300 queries per secTraffic at peak times 300 queries per sec

never promoted or advertised never promoted or advertised anywhereanywhere

viral growth (entirely word of mouth)viral growth (entirely word of mouth)

[email protected]

Page 43: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What You Need To Build BotsWhat You Need To Build Bots

Natural Language EngineNatural Language Engine

Conversational SystemConversational System

User ProfileUser Profile

Messenger network faceless client Messenger network faceless client supporting latest large range of supporting latest large range of featuresfeatures

All these should be highly scalable and All these should be highly scalable and cost effectivecost effective

Page 44: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What You NeedWhat You NeedNatural languageNatural language

Comprehensive natural language processing engineComprehensive natural language processing engineHighly optimized for IM scale traffic Highly optimized for IM scale traffic Efficient natural language definition syntax Efficient natural language definition syntax Support for both Static , dynamic (data-driven) and procedural lexical items Support for both Static , dynamic (data-driven) and procedural lexical items

Automatic binding of user input data to variablesAutomatic binding of user input data to variablesDialog handlingDialog handling

Ability to handle complex conversational dialogsAbility to handle complex conversational dialogs

Context awareness Context awareness Giving preference to the current conversation subjectGiving preference to the current conversation subjectAnaphora ( Ex: Can you show it to me ?}Anaphora ( Ex: Can you show it to me ?}

Ambiguity resolution Ambiguity resolution recognizes ambiguous queries recognizes ambiguous queries Prompts user to clarify intent Prompts user to clarify intent

Language Libraries Language Libraries Language Parsing RulesLanguage Parsing RulesLexiconsLexiconsIndustry specific ExtensionsIndustry specific Extensions

Spell CorrectionSpell Correction

Page 45: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What You NeedWhat You NeedConversational Centric platformConversational Centric platform

Adaptive output Adaptive output

IM centric User Profile Management IM centric User Profile Management

Logging Logging

Usage ReportingUsage Reporting

Quality AnalysisQuality Analysis

Page 46: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

What You NeedWhat You NeedMessenger Features SupportMessenger Features Support

Display PicturesDisplay Pictures

EmoticonsEmoticons

Dynamic Display PicturesDynamic Display Pictures

Pretty NamePretty Name

Personal MessagesPersonal Messages

BackgroundsBackgrounds

MSN ActivitiesMSN ActivitiesAbility to inviteAbility to invite

Accept invitationAccept invitation

Transfer information between the bot and the userTransfer information between the bot and the user

Page drivingPage driving

Page 47: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Building An AgentBuilding An Agent

Adding Basic Natural LanguageAdding Basic Natural Language

Starting the AgentStarting the Agent

Data Feed BindingData Feed Binding

User Input BindingUser Input Binding

Adding Conversational StructureAdding Conversational Structure

Adding Activity SupportAdding Activity Support

Page 48: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Adding Basic Natural Language Adding Basic Natural Language And Conversation StructureAnd Conversation Structure

? Hello.? Hello.

- Hi ! Nice to see you.- Hi ! Nice to see you.

? I am lost? I am lost

? Help? Help

- I am here to get you to - I am here to get you to discover MSN Music. discover MSN Music.

Page 49: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music. Music.

Page 50: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music Music

Page 51: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music. Music.

Page 52: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music. Music.

Page 53: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music. Music.

Page 54: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In ActionIn Action

? Hello.? Hello.

- Hi ! Nice to - Hi ! Nice to see you.see you.

? I am lost? I am lost

? Help? Help

- I am here to - I am here to get you to get you to discover MSN discover MSN Music. Music.

Page 55: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Data BindingData Binding

5 Line binding to a RSS feed:5 Line binding to a RSS feed:

datasource GetMSNMusicFeed() => Title,Description,Linkdatasource GetMSNMusicFeed() => Title,Description,Link http {timeout="20"}http {timeout="20"} http://music.msn.com/services/rss.aspx?uid=00000002-0000-0000-0000-http://music.msn.com/services/rss.aspx?uid=00000002-0000-0000-0000-

000000000000000000000000 simple xmlsimple xml rssrss channel {loop=content}channel {loop=content} item {loop=content}item {loop=content} titletitle descriptiondescription linklink

Hooking it up to a reference requestHooking it up to a reference request

? Show me the top 10? Show me the top 10 TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10 * Here is the Top 10:* Here is the Top 10: - TITLE- TITLE * more to see more items.* more to see more items.

Page 56: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Data Feed)In Action (Data Feed)

? Show me the top ? Show me the top 1010

TITLE, TITLE, DESCRIPTION,LINK DESCRIPTION,LINK = = GetMSNMusicFeed() GetMSNMusicFeed() show 10show 10

* Here is the * Here is the Top 10:Top 10:

- TITLE- TITLE

* more to * more to see more items.see more items.

Page 57: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Data Feed)In Action (Data Feed)

? Show me the top 10? Show me the top 10

TITLE, TITLE, DESCRIPTION,LINK DESCRIPTION,LINK = = GetMSNMusicFeed() GetMSNMusicFeed() show 10show 10

* Here is the * Here is the Top 10:Top 10:

- TITLE- TITLE

* more to see * more to see more items.more items.

Page 58: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

User Input BindingUser Input Binding

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ARTIST=anArtist? Downloads for ARTIST=anArtist

- Here are the downloads available - Here are the downloads available for ARTISTfor ARTIST

Page 59: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 60: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 61: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 62: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 63: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 64: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (User Input Binding)In Action (User Input Binding)

subpattern anArtistsubpattern anArtist

+ eminem+ eminem

+ shakira+ shakira

? Downloads for ? Downloads for ARTIST=anArtistARTIST=anArtist

- Here are the - Here are the downloads downloads available for available for ARTISTARTIST

Page 65: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Adding Conversational StructureAdding Conversational StructureDialogsDialogs

? What is the number 1 song?? What is the number 1 song?

call ShowNumber1Song()call ShowNumber1Song()

- Do you want me to play it for - Do you want me to play it for you?you?

? Yes ? Yes

- call DoPlayMusic(1)- call DoPlayMusic(1)

? No? No

- Ok. What would you like to do- Ok. What would you like to do then?then?

Page 66: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Dialogs)In Action (Dialogs)

? What is the number 1 ? What is the number 1 song?song?

call call ShowNumber1Song()ShowNumber1Song()

- Do you want me to - Do you want me to play it for you?play it for you?

? Yes ? Yes

- call - call DoPlayMusic(1)DoPlayMusic(1)

? No? No

- Ok. What would - Ok. What would you like to doyou like to do then?then?

Page 67: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Dialogs)In Action (Dialogs)

? What is the number 1 ? What is the number 1 song?song?

call call ShowNumber1Song()ShowNumber1Song()

- Do you want me to - Do you want me to play it for you?play it for you?

? Yes ? Yes

- call - call DoPlayMusic(1)DoPlayMusic(1)

? No? No

- Ok. What would - Ok. What would you like to doyou like to do then?then?

Page 68: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Dialogs)In Action (Dialogs)

? What is the number 1 ? What is the number 1 song?song?

call call ShowNumber1Song()ShowNumber1Song()

- Do you want me to - Do you want me to play it for you?play it for you?

? Yes ? Yes

- call - call DoPlayMusic(1)DoPlayMusic(1)

? No? No

- Ok. What would - Ok. What would you like to doyou like to do then?then?

Page 69: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Dialogs)In Action (Dialogs)

? What is the number 1 ? What is the number 1 song?song?

call call ShowNumber1Song()ShowNumber1Song()

- Do you want me to - Do you want me to play it for you?play it for you?

? Yes ? Yes

- call - call DoPlayMusic(1)DoPlayMusic(1)

? No? No

- Ok. What would - Ok. What would you like to doyou like to do then?then?

Page 70: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Adding Activity SupportAdding Activity Support

Defining which activity to useDefining which activity to use

function overrides MSNSLPGetAgentMainP4ApplicationName()function overrides MSNSLPGetAgentMainP4ApplicationName() return return ““MSNMusic"MSNMusic"

function overrides MSNSLPGetAgentMainP4ApplicationId()function overrides MSNSLPGetAgentMainP4ApplicationId() return "99991046" // Application IDreturn "99991046" // Application ID

Inviting the userInviting the user

? Invite me again.? Invite me again.? Can you reopen the window?? Can you reopen the window?? Invite me!? Invite me!

call MSNSLPSendInvitationToOpenMainP4Application()call MSNSLPSendInvitationToOpenMainP4Application()

Sending Data to the ActivitySending Data to the Activity

Procedure ShowMusicLink(LINK)Procedure ShowMusicLink(LINK) REQUEST = StringConcat(REQUEST, "url=", LINK)REQUEST = StringConcat(REQUEST, "url=", LINK) call MSNSLPSendData(REQUEST)call MSNSLPSendData(REQUEST)

Page 71: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Activity)In Action (Activity)

Page 72: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Activity)In Action (Activity)

Page 73: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Activity)In Action (Activity)

Page 74: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Activity)In Action (Activity)

Page 75: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

In Action (Activity)In Action (Activity)

Page 76: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Live Bot Content Live Bot Content ManagementManagement

Natural language and Natural language and conversation conversation structure we have structure we have built can be built can be edited/approved and edited/approved and published live published live

Page 77: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Live EditingLive EditingReference questions and contentReference questions and content

Page 78: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

DeploymentDeploymentDevelop for free - pay to deploy modelDevelop for free - pay to deploy model

Develop and Test on your Developer Develop and Test on your Developer editionedition

When you want to deploy at scaleWhen you want to deploy at scaleBuy a Server licenseBuy a Server license

OrOrUse Conversagent hosting servicesUse Conversagent hosting services

Page 79: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Final ThoughtsFinal Thoughts

SDK Freely availableSDK Freely available

6 months up to 50,000 sessions a month6 months up to 50,000 sessions a month

Download available at:Download available at:http://http://buddyscript.conversagent.combuddyscript.conversagent.com

Contact us at:Contact us at:[email protected]@conversagent.com

Page 80: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

Developer ResourcesDeveloper Resources

Windows Live™ Messenger Dev Center on MSDNWindows Live™ Messenger Dev Center on MSDNhttp://msdn.microsoft.com/msn/msnmessenger/http://msdn.microsoft.com/msn/msnmessenger/Activity API DownloadActivity API Download

Windows Live™ Messenger Discussion Forum on Windows Live™ Messenger Discussion Forum on MSDNMSDN

http://forums.microsoft.com/msdn/showforum.aspx?http://forums.microsoft.com/msdn/showforum.aspx?forumid=112&siteid=1forumid=112&siteid=1

Windows Live™ Messenger Team SpaceWindows Live™ Messenger Team Spacehttp://spaces.msn.com/messengersays/PersonalSpace.aspxhttp://spaces.msn.com/messengersays/PersonalSpace.aspx

Windows Live™ Alerts SignupWindows Live™ Alerts Signuphttp://signup.alerts.msn.comhttp://signup.alerts.msn.com

Windows Live™ Business Questions?Windows Live™ Business Questions?E-mail: [email protected]: [email protected]

Page 81: Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.