Giter Site home page Giter Site logo

ubreddy / botbuilder-timeout Goto Github PK

View Code? Open in Web Editor NEW

This project forked from user1m/botbuilder-timeout

0.0 2.0 0.0 104 KB

Module for Microsoft Bot Framework to enable your bot to prompt the user if user is inactive and ultimately end the conversation if no user activity after a defined period of time.

License: MIT License

TypeScript 100.00%

botbuilder-timeout's Introduction

botbuilder-timeout

npm license dependencies Status devDependencies Status maintained

© 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:

Example Screenshot

Installation

npm install botbuilder-timeout --save-dev

Tested on Node.js v8 or newer

Usage

const timeout = require("botbuilder-timeout");

const connector = new builder.ChatConnector({...});

const options = {
    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
};

const bot = new builder.UniversalBot(connector);

timeout.setConversationTimeout(bot, options);

Options

Option Description

PROMPT_IF_USER_IS_ACTIVE_MSG

String
Default: 'Are you there?'. Message presented to user to confirm activity.

PROMPT_IF_USER_IS_ACTIVE_BUTTON_TEXT

String
Default: 'Yes'. Button text presented during prompt checking for activity.

PROMPT_IF_USER_IS_ACTIVE_TIMEOUT_IN_MS

Number
Default: 30000. Time in milliseconds before prompt with PROMPT_IF_USER_IS_ACTIVE_MSG message is presented.

END_CONVERSATION_MSG

String
Default: "Ending conversation since you've been inactive too long. Hope to see you soon." Message sent to user when conversation is ended.

END_CONVERSATION_TIMEOUT_IN_MS

Number
Default: 15000. Time in milliseconds before conversation is ended with END_CONVERSATION_MSG message.

Full Example with Botbuilder (Node.js/Typescript)

import express = require('express');
import * as builder from '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 dialogs
const server = express();
const port = process.env.port || process.env.PORT || 3978;
const connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

const bot = new builder.UniversalBot(connector);

bot.dialog('/', [
    (session, args, next) => {
        builder.Prompts.text(session, `What's your name?`);
    },
    (session, args, next) => {
        session.send(`Hi ${session.message.text}`);
    }]
);

const options = {
    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}`);
});

Change-Log

See CHANGELOG.md.

License

See MIT.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.