© 2017, Claudius Mbemba (@user1m). MIT License.
Module for Microsoft Bot Framework to enable your bot to prompt the user if the bot detects inactivity and ultimately end the conversation if no user activity after a defined period of time.
Example:
npm install botbuilder-timeout --save-devTested on Node.js v8 or newer
consttimeout=require("botbuilder-timeout");constconnector=newbuilder.ChatConnector({...});constoptions={PROMPT_IF_USER_IS_ACTIVE_MSG: "Hey are you there?",PROMPT_IF_USER_IS_ACTIVE_BUTTON_TEXT: "Yes I am",PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS: 15000,END_CONVERSATION_MSG: "Conversation Ended",END_CONVERSATION_TIMEOUT_IN_MS: 10000};constbot=newbuilder.UniversalBot(connector);timeout.setConversationTimeout(bot,options);| Option | Description |
|---|---|
String | Default: 'Are you there?'. Message presented to user to confirm activity. |
String | Default: 'Yes'. Button text presented during prompt checking for activity. |
Number | Default: 30000. Time in milliseconds before prompt with PROMPT_IF_USER_IS_ACTIVE_MSG message is presented. |
String | Default: "Ending conversation since you've been inactive too long. Hope to see you soon." Message sent to user when conversation is ended. |
Number | Default: 15000. Time in milliseconds before conversation is ended with END_CONVERSATION_MSG message. |
importexpress=require('express');import*asbuilderfrom'botbuilder';import{setConversationTimeout}from"botbuilder-timeout";console.log(`BOT ID: ${process.env.MICROSOFT_APP_ID}\nBOT PASS: ${process.env.MICROSOFT_APP_PASSWORD}`);// Create bot and add dialogsconstserver=express();constport=process.env.port||process.env.PORT||3978;constconnector=newbuilder.ChatConnector({appId: process.env.MICROSOFT_APP_ID,appPassword: process.env.MICROSOFT_APP_PASSWORD});constbot=newbuilder.UniversalBot(connector);bot.dialog('/',[(session,args,next)=>{builder.Prompts.text(session,`What's your name?`);},(session,args,next)=>{session.send(`Hi ${session.message.text}`);}]);constoptions={PROMPT_IF_USER_IS_ACTIVE_MSG: "Hey are you there?",PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS: 15000,END_CONVERSATION_MSG: "Conversation Ended",END_CONVERSATION_TIMEOUT_IN_MS: 10000};setConversationTimeout(bot,options);server.post('/api/messages',connector.listen());server.listen(port,()=>{console.info(`Server Up: Listening at port ${port}`);});See CHANGELOG.md.
See MIT.
