Skip to content
⚡️ A framework for building conversational user interfaces.
TypeScript JavaScript Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github ci: run lint only on ubuntu-latest node 12 (#800) Jun 13, 2020
__mocks__ fix: eslint Sep 23, 2019
docs docs: update slack setup (#777) May 25, 2020
examples fix(examples): npm run dev --console to npm run dev -- --console in r… May 18, 2020
packages v1.4.6 May 22, 2020
test Print unhandled rejction when test Aug 15, 2017
types feat: add nlu packages Jan 10, 2020
website chore: update i18n/en.json May 26, 2020
.dockerignore docs: implement website Sep 27, 2019
.editorconfig config files May 25, 2017
.eslintignore feat: add typescript support to bottender dev (#654) Feb 20, 2020
.eslintrc.js deps: bump backage versions (#669) Mar 3, 2020
.gitignore docs: setup crowdin (#675) Mar 18, 2020
.gitpod.yml simplifies code contributions by automating the dev setup with gitpod. ( Feb 3, 2020
CHANGELOG.md 1.4.6 changelog May 22, 2020
CODE_OF_CONDUCT.md chore: rename *.js to *.ts Sep 11, 2019
Dockerfile docs: implement website Sep 27, 2019
LICENSE rename project to bottender & add MIT license (#515) Oct 19, 2017
README.md Add a config for Github Actions (#782) May 25, 2020
codecov.yml feat: export initializeServer for testing Oct 13, 2019
crowdin.yaml docs: setup crowdin (#675) Mar 18, 2020
docker-compose.yml docs: implement website Sep 27, 2019
jest.config.js feat: add nlu packages Jan 10, 2020
lerna.json v1.4.6 May 22, 2020
lint-staged.config.js chore: remove git add in lint-staged Mar 6, 2020
package.json chore: fix codecov on ci (#795) Jun 9, 2020
prettier.config.js chore: add prettier config Sep 12, 2019
tsconfig.base.json remove --token stuff Sep 16, 2019
tsconfig.build.json feat: add nlu packages Jan 10, 2020
tsconfig.json chore: setup typescript Sep 11, 2019
tsconfig.test.json chore: setup typescript Sep 11, 2019
yarn.lock fix(line): bump messaging-api-line to beta.20 and fix types in text m… Apr 16, 2020

README.md

Bottender

npm Build Status coverage License: MIT PRs Welcome join chat Gitpod Ready-to-Code Follow @bottenderjs

The readme below is the documentation for the v1 (stable) version of Bottender. To view the documentation:

  • Declarative - Bottender takes care of the complexity of conversational UIs for you. Design actions for each event and state in your application, and Bottender will run accordingly. This approach makes your code more predictable and easier to debug.

  • Native User Experience - Bottender lets you create apps on every channel and never compromise on your users’ experience. You can apply progressive enhancement or graceful degradation strategy on your building blocks.

  • Easy Setup - With Bottender, you only need a few configurations to make your bot work with channels, automatic server listening, webhook setup, signature verification and so much more.

  • Ready for Production - There are thousands of bots powered by Bottender. It has been optimized for real world use cases, automatic batching request and dozens of other compelling features.

Bottender is built on top of Messaging APIs.

Installation

You can create a new Bottender app using the CLI tools:

npx create-bottender-app my-app

Installation may fail on Windows during compilation of the native dependencies with node-gyp. To solve this problem, you can install windows-build-tools or check node-gyp documentation.

Documentation

You can find the Bottender documentation on the website.

Check out the Getting Started page for a quick overview.

Community

join chat

You can discuss anything about Bottender or chatbot development in our Discord Server. Join now!

Examples

We have a bunch of examples in the examples folder. Here is the first one to get you started:

// index.js
const { router, text } = require('bottender/router');

async function SayHi(context) {
  await context.sendText('Hi!');
}

async function Unknown(context) {
  await context.sendText('Sorry, I don’t know what you say.');
}

module.export = function App(context) {
  return router([
    text('hi', SayHi),
    text('*', Unknown),
  ]);
};

Notable Features

Messenger

  • Messenger Profile Sync
  • Attachment Upload
  • Handover Protocol
  • Persona
  • Built-in NLP
  • Multiple Pages

LINE

  • Reply, Push, Multicast, Narrowcast
  • Imagemap
  • Rich menu
  • Room, Group Chat
  • Beacon
  • Icon Switch
  • Line Notify
  • LIFF (LINE Front-end Framework)

Slack

  • Channel Chat
  • Interactive Message
  • Slash Command

Telegram

  • Webhook, Long Polling
  • Updating, Deleting Messages
  • Keyboard
  • Group Chat
  • Inline Query
  • Message Live Location
  • Payment

Viber

  • Subscribed, Unsubscribed Event
  • Delivered, Seen Event

Ecosystem

Contributing

Pull Requests and issue reports are welcome. You can follow steps below to submit your pull requests:

Fork, then clone the repo:

git clone git@github.com:your-username/bottender.git

Install the dependencies:

cd bottender
yarn

Make sure the tests pass (including ESLint, TypeScript checks and Jest tests):

yarn test

Make your changes and tests, and make sure the tests pass.

Contribute using the online one-click setup

You can use Gitpod(a free online VS Code-like) for contributing. With a single click it will launch a workspace and automatically:

  • clone the bottender repo.
  • install the dependencies.
  • run yarn run start.

So that you can start straight away.

Open in Gitpod

License

MIT © Yoctol

You can’t perform that action at this time.