GithubHelp home page GithubHelp logo

bhanditz / botkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from howdyai/botkit

0.0 2.0 0.0 4.81 MB

Botkit is the leading developer tool for building chat bots, apps and custom integrations for major messaging platforms.

Home Page: http://botkit.ai

License: MIT License

Dockerfile 0.03% JavaScript 99.97%

botkit's Introduction

Botkit - Building Blocks for Building Bots

npm David npm bitHound Overall Score

Botkit is the leading developer tool for building chat bots, apps and custom integrations for major messaging platforms.

Botkit offers everything you need to design, build and operate an app:

Plus, Botkit works with all the NLP services (like Microsoft LUIS and IBM Watson), can use any type of database you want, and runs on almost any hosting platform.

Install Botkit

Botkit is a Node.js module, and works with Node and npm.

Botkit Studio

Botkit Studio is a dashboard and IDE designed to super-charge Botkit. It includes a web-based interface for building and managing dialog, an activity console, third party integrations, and advanced analytics tools like customer segmenting, conversion funnels, and user retention metrics.

Sign up for a free Botkit Studio account, and it will guide you through the process to create, configure and deploy your Botkit app!

Sign up for Botkit Studio

Remix on Glitch

Want to dive right in? Remix one of our starter kits on Glitch. You'll start with a fully functioning app that you can edit and run from the browser!

Remix on Glitch

Command Line Interface

The best way to get started locally with Botkit is by installing our command line tool, and using it to create a new Botkit project. This will install and configure a starter kit for you!

npm install -g botkit
botkit new

Start from Scratch

You can also add Botkit into an existing Node application.

First, add it to your project:

npm install --save botkit

Then, add Botkit to your application code:

var Botkit = require('botkit');

var controller = Botkit.anywhere(configuration);

controller.hears('hello','direct_message', function(bot, message) {
    bot.reply(message,'Hello yourself!');
});

Review the documentation to learn how to configure Botkit's controller to work with the messaging platform of your choice.

Build Your Bot

The goal of Botkit is to make it easier and more fun to build software that talks and works like a robot! Building a bot should feel cool, and not too technically complicated.

Botkit handles all the nitty gritty details like API calls, session management and authentication, allowing you to focus on building COOL FEATURES for your bot using middleware and event handlers.

The toolkit is designed to provide meaningful building blocks for creating conversational user interfaces - with functions like hears(), ask(), and reply() that do what they say they do.

Hearing Keywords

Most bots do their thing by listening for keywords, phrases or patterns in messages from users. Botkit has a special event handler called hears() that makes it easy to configure your bot to listen for this type of trigger.

controller.hears(['string','pattern .*',new RegExp('.*','i')],'message_received,other_event',function(bot, message) {

  // do something!
  bot.reply(message, 'I heard a message.')

});

Read more about hearing things ›

Responding to Events

Bots can respond to non-verbal events as well, like when a new user joins a channel, a file gets uploaded, or a button gets clicked. These events are handled using an event handling pattern that should look familiar. Most events in Botkit can be replied to like normal messages.

controller.on('channel_join', function(bot, message) {

  bot.reply(message,'Welcome to the channel!');

});

See a full list of events and more information about handling them ›

Middleware

In addition to taking direct action in response to a certain message or type of event, Botkit can also take passive action on messages as they move through the application using middlewares. Middleware functions work by changing messages, adding new fields, firing alternate events, and modifying or overriding the behavior of Botkit's core features.

Middleware can be used to adjust how Botkit receives, processes, and sends messages. Here is a list of available middleware endpoints.

// Log every message recieved
controller.middleware.receive.use(function(bot, message, next) {

  // log it
  console.log('RECEIVED: ', message);

  // modify the message
  message.logged = true;

  // continue processing the message
  next();

});

// Log every message sent
controller.middleware.send.use(function(bot, message, next) {

  // log it
  console.log('SENT: ', message);

  // modify the message
  message.logged = true;

  // continue processing the message
  next();

});

Full Documentation

Community & Support

Join our thriving community of Botkit developers and bot enthusiasts at large. Over 6500 members strong, our open Slack group is the place for people interested in the art and science of making bots. Come to ask questions, share your progress, and commune with your peers!

You can also find help from members of the Botkit team in our dedicated Cisco Spark room!

We also host a regular meetup and annual conference called TALKABOT. Come meet and learn from other bot developers! Full video of our 2016 event is available on Youtube.

About Botkit

Botkit is a product of Howdy.ai.

Want to contribute? Read the contributor guide

Botkit is released under the MIT Open Source license

botkit's People

Contributors

ouadie-lahdioui avatar anonrig avatar rafaelcosman avatar jonchurch avatar colestrode avatar peterswimm avatar esoelzer avatar agamrafaeli avatar mvaragnat avatar auberryberry avatar xavdid avatar panx981389 avatar naktibalda avatar qiongfangzhang avatar zetlen avatar sundeepgupta avatar joshuaklassen avatar krismuniz avatar ccruson avatar stevenic avatar nishch avatar jsalwen avatar tkornblit avatar jamesdwilson avatar brianleroux avatar uny avatar louisgillies avatar selfcontained avatar lambtron avatar kevinsuh avatar

Watchers

James Cloos avatar  avatar

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.