Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yoctol/bottender
⚡️ A framework for building conversational user interfaces.
https://github.com/yoctol/bottender
bot chatbot framework line messaging messenger slack telegram viber
Last synced: 4 days ago
JSON representation
⚡️ A framework for building conversational user interfaces.
- Host: GitHub
- URL: https://github.com/yoctol/bottender
- Owner: Yoctol
- License: mit
- Created: 2017-10-16T09:40:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T13:31:04.000Z (10 months ago)
- Last Synced: 2024-10-29T15:03:23.323Z (3 months ago)
- Topics: bot, chatbot, framework, line, messaging, messenger, slack, telegram, viber
- Language: TypeScript
- Homepage: https://bottender.js.org
- Size: 25.2 MB
- Stars: 4,221
- Watchers: 92
- Forks: 335
- Open Issues: 75
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Bottender
[![npm](https://img.shields.io/npm/v/bottender.svg)](https://www.npmjs.com/package/bottender)
[![Build Status](https://github.com/Yoctol/bottender/workflows/Node.js%20CI/badge.svg)](https://github.com/Yoctol/bottender/actions?query=workflow%3ANode.js%20CI+branch%3Amaster)
[![coverage](https://codecov.io/gh/Yoctol/bottender/branch/master/graph/badge.svg)](https://codecov.io/gh/Yoctol/bottender)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Yoctol/bottender#contributing)
[![join chat](https://img.shields.io/badge/discord-join%20chat-green.svg)](https://discord.gg/apNsWBz)
[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/Yoctol/bottender)
[![Follow @bottenderjs](https://img.shields.io/twitter/follow/bottenderjs.svg?label=Follow%20@bottenderjs)](https://twitter.com/intent/follow?screen_name=bottenderjs)![](https://user-images.githubusercontent.com/3382565/76295244-3c80c800-62ef-11ea-88dc-a6039b3918c2.png)
> The readme below is the documentation for the v1 (stable) version of Bottender. To view the documentation:
>
> - for the latest Bottender version (v1.x), visit https://bottender.js.org/docs/
> - for the legacy Bottender version (v0.15), visit https://bottender.js.org/docs/0.15.17/- **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](https://github.com/bottenderjs/messaging-apis).## Installation
You can create a new Bottender app using the CLI tools:
```sh
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`](https://github.com/felixrieseberg/windows-build-tools#readme) or check [`node-gyp` documentation](https://github.com/nodejs/node-gyp#on-windows).
## Documentation
You can find the Bottender documentation [on the website](https://bottender.js.org?new).
Check out the [Getting Started](https://bottender.js.org/docs) page for a quick overview.
## Community
[![join chat](https://img.shields.io/badge/discord-join%20chat-green.svg)](https://discord.gg/unmFzmR)
You can discuss anything about Bottender or chatbot development in our [Discord](https://discordapp.com/) Server. [Join now!](https://discord.gg/unmFzmR)
## Examples
We have a bunch of examples in the
[examples](https://github.com/Yoctol/bottender/tree/master/examples) folder.
Here is the first one to get you started:```js
// 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
- [bottender-compose](https://github.com/bottenderjs/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:
```sh
git clone [email protected]:your-username/bottender.git
```Install the dependencies:
```sh
cd bottender
yarn
```Make sure the tests pass (including ESLint, TypeScript checks and Jest tests):
```sh
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](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yoctol/bottender)
## License
MIT © [Yoctol](https://github.com/Yoctol/bottender)