Yoctol/bottender
A framework for building conversational user interfaces.
repo name | Yoctol/bottender |
repo link | https://github.com/Yoctol/bottender |
homepage | https://bottender.js.org?new |
language | TypeScript |
size (curr.) | 14444 kB |
stars (curr.) | 3203 |
created | 2017-10-16 |
license | MIT License |
Bottender
The readme below is the documentation for the v1 (stable) version of Bottender. To view the documentation for the old Bottender version visit https://bottender.js.org/docs/0.15.17/getting-started
-
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. his 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
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
module.export = async function App(context) {
await context.sendText('Hello World');
};
npx bottender start --console
This will create and run a bot which always reply “Hello World” in the console.
Notable Features
Messenger
- Messenger Profile Sync
- Attachment Upload
- Handover Protocol
- Persona
- Built-in NLP
- Multiple Pages
LINE
- Reply, Push, Multicast
- Imagemap
- Rich Menu
- Room, Group Chat
- Beacon
Slack
- Channel Chat
- Interactive Message
Telegram
- Webhook, Long Polling
- Update, Delete Messages
- Keyboard
- Group Chat
- Inline Query
- Message Live Location
- Payment
Viber
- Subscribed, Unsubscribed Event
- Delivered, Seen Event
Ecosystem
- bottender-compose - An utility library for Bottender and higher-order handlers.
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, flow checks and jest tests):
yarn test
Make your changes and tests, and make sure the tests pass.
Contribute using online one click setup
You can use gitpod(a free online vs code like ide) for contributing with a single click it will launch a ready to code workspace with repo already cloned, all the dependencies pre-installed and the server for the website running so that you can start coding straight away without wasting time on the setup.
License
MIT © Yoctol