• Stars
    star
    4,166
  • Rank 9,962 (Top 0.3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚡️ A framework for building conversational user interfaces.

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 [email protected]: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

More Repositories

1

react-messenger-customer-chat

React component for messenger customer chat plugin
JavaScript
270
star
2

react-d3-cloud

A word cloud react component built with d3-cloud.
TypeScript
136
star
3

seq2vec

Transform sequence of words into a fix-length representation vector
Python
68
star
4

ADEM

TOWARDS AN AUTOMATIC TURING TEST: LEARNING TO EVALUATE DIALOGUE RESPONSES
Python
27
star
5

fetch-graphql-schema

fetch GraphQL schema via introspection query
JavaScript
27
star
6

leader-of-lunch

LOL
TypeScript
19
star
7

yoctol-keras-layer-zoo

Some customized keras layers used in Yoctol NLU.
Python
19
star
8

react-messenger-send-to-messenger

React component for messenger send to messenger plugin
JavaScript
17
star
9

text-normalizer

Normalize text string
Python
13
star
10

react-messenger-message-us

React component for messenger message us plugin
JavaScript
10
star
11

tailor-ui

A bespoke UI collection for building web application.
TypeScript
10
star
12

yoctol-nlu-py

Yoctol understood SDK for python.
Jupyter Notebook
10
star
13

react-messenger-checkbox

React component for messenger checkbox plugin
JavaScript
10
star
14

HRED

Hierarchical Encoder Decoder RNN
Python
8
star
15

serving-utils

Some utilities for tensorflow serving
Python
8
star
16

agricola-score

農家樂分數計算機
JavaScript
7
star
17

ansible-docker-postgres

Ansible role to run postgres container.
6
star
18

tw-stock-info-bot

JavaScript
5
star
19

bookshelf-test-utils

JavaScript
5
star
20

bottender-google-sheet-sync-demo

a demo of google sheets api on bottender
JavaScript
5
star
21

eslint-config-yoctol

Yoctol specific linting rules for ESLint
JavaScript
5
star
22

strpipe

text preprocessing pipeline
Python
5
star
23

async-update-props

JavaScript
4
star
24

us-stock-info-bot

JavaScript
4
star
25

DS-post-interview-assignment

A Post Interview Assignment for Candidates.
Python
4
star
26

stylelint-config-yoctol

Yoctol's stylelint config
JavaScript
3
star
27

purewords

Create pure sentences
Python
3
star
28

word-embedder

Get pretrained word embedding
Python
3
star
29

ansible-env-file

Role to render env file with ease.
3
star
30

bookshelf-plugin

Yoctol specific plugins for Bookshelf
JavaScript
2
star
31

talos

Neural Network Builder
Python
2
star
32

hubot-messenger-bot-adapter

A Hubot adapter for Facebook Messenger Platform
JavaScript
2
star
33

eslint-config-yoctol-base

Yoctol specific base linting rules for ESLint
JavaScript
2
star
34

yoctol-nlu-node

Yoctol Natural Language Understanding SDK for Node.js
JavaScript
2
star
35

yoctol-printer

print files using web interface
JavaScript
2
star
36

ansible-dockerfile

1
star
37

koa-final-handler

Final handler middleware for koa.
JavaScript
1
star
38

uttut

Utterance utilities.
Python
1
star
39

liff-test

Using Bottender to test behavior of LIFF in any situation.
JavaScript
1
star
40

react-paperjs-experiment

JavaScript
1
star
41

messenger-batch

Gracefully batching messenger requests.
JavaScript
1
star
42

flake8-config-yoctol

Yoctol Flake8 config
Python
1
star
43

ddenv

Debug Friendly Environment
JavaScript
1
star
44

babel-preset-yoctol

Yoctol specific configuration for Babel
JavaScript
1
star