developing interactive applications using windows live robots, activities, and alerts
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
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
AgendaAgenda
IntroductionIntroduction
Activity ApplicationsActivity Applications
AlertsAlerts
Building and Deploying ‘Bots’Building and Deploying ‘Bots’
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
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
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
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
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
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
Windows Live Safety Scanner Activity Windows Live Safety Scanner Activity ApplicationApplicationESPBilly Bot And Activity ApplicationESPBilly Bot And Activity Application
Activity ApplicationsActivity Applications
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
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™™
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
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
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
Activities ArchitectureActivities Architecture
Multi (Two) User ActivityMulti (Two) User Activity
Activity Application
Activity Application
ServersServers
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
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
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
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
Building An Activity Building An Activity ApplicationApplication
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
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
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
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
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
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
Provisioning, Debugging Provisioning, Debugging And running ApplicationAnd running Application
AlertsAlerts
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
How Do Users Sign Up?How Do Users Sign Up?
100% User Opt-In100% User Opt-In
Delivery to:Delivery to:
DesktopDesktopEmailEmailSMSSMS
Using PRESENCE, Our Alerts Platform Using PRESENCE, Our Alerts Platform Automatically Automatically FindsFinds User With User With RSS-Triggered RSS-Triggered InformationInformation
… … Which DRIVES Traffic To Which DRIVES Traffic To Your PlatformYour Platform
… … 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)
MSN Alerts ManagerMSN Alerts ManagerOnline App To Manage It AllOnline App To Manage It All
CustomizeCustomize
CreateCreate
ReportReport
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.
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)
Building And Deploying Building And Deploying Windows Live Robots Windows Live Robots
John KimJohn KimPierre BerkaloffPierre Berkaloff
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
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)
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
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
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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?
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?
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?
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?
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?
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)
In Action (Activity)In Action (Activity)
In Action (Activity)In Action (Activity)
In Action (Activity)In Action (Activity)
In Action (Activity)In Action (Activity)
In Action (Activity)In Action (Activity)
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
Live EditingLive EditingReference questions and contentReference questions and content
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
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
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]
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.