Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sarthakjdev/wapi.js
Wapi.js is a node SDK built for developing WhatsApp Business platform apps with ease and faster
https://github.com/sarthakjdev/wapi.js
chat-bot cloud-api cloud-api-sdk nodejs nodejs-sdk sdk typescript whatsapp whatsapp-bot whatsapp-chatbot whatsapp-cloud-api whatsapp-customer-support-bot whatsapp-sdk whatsappjs
Last synced: about 1 month ago
JSON representation
Wapi.js is a node SDK built for developing WhatsApp Business platform apps with ease and faster
- Host: GitHub
- URL: https://github.com/sarthakjdev/wapi.js
- Owner: sarthakjdev
- License: agpl-3.0
- Created: 2022-10-27T07:56:45.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-20T06:05:39.000Z (4 months ago)
- Last Synced: 2024-09-28T16:05:17.462Z (about 2 months ago)
- Topics: chat-bot, cloud-api, cloud-api-sdk, nodejs, nodejs-sdk, sdk, typescript, whatsapp, whatsapp-bot, whatsapp-chatbot, whatsapp-cloud-api, whatsapp-customer-support-bot, whatsapp-sdk, whatsappjs
- Language: MDX
- Homepage: https://javascript.wapikit.com
- Size: 10.1 MB
- Stars: 37
- Watchers: 2
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Visit the documentation of the SDK [here](https://javascript.wapikit.com)
## Status
Beta Version - This SDK is not stable right now. It is currently in beta version. Report issues [here](https://github.com/sarthakjdev/wapi.js/issues).
## About
Wapi.js is a JavaScript module, written in TypeScript, designed to interact with the WhatsApp cloud API in a user-friendly manner.
### Packages:
- [**@wapijs/wapi.js**]('/packages/wapi.js'): Interact with WhatsApp cloud API with simple and easy-to-manage code.
- [**@wapijs/create-wapi-app**]('/packages/create-wapi-app): Start with the development of your WhatsApp bot using this starter template utility.## Features
- Object-Oriented Architecture
- Single Client Model
- Send Messages with the least configuration
- Event Listener for Notifications (support both User and System Notifications)
- Upload Media to WhatsApp servers
- Reply and React to incoming messages.## Installation
Ensure you have the Node.js 18 LTS version to use this SDK.
```sh
npm install @wapijs/wapi.js
yarn add @wapijs/wapi.js
pnpm install @wapijs/wapi.js
```> Note: This SDK is not affiliated with the official WhatsApp Cloud API or does not act as any official solution provided the the Meta Inclusive Private Limited, this is just a open source SDK built for developers to support them in building whatsapp cloud api based chat bots easily.
## Usage
- Kickstart your first WhatsApp application with Wapi.js. Check the [User Manual](./USER_MANUAL.md).
- You can check out the example WhatsApp bot here. [Example Chatbot](./packages/example-chat-bot/)
- You can get started with the development of your bot with this starter template utility.```sh
pnpm create-wapi-app
```## References
- **Message Structures**: Refer to the WhatsApp Docs [here](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages).
- **Notification Payloads**: Details can be found [here](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components).
## Example Usage
```typescript
import { Client, TextMessage } from 'wapi.js'const whatsappClient = new Client({
apiAccessToken: process.env.WHATSAPP_API_ACCESS_TOKEN,
businessAccountId: process.env.WHATSAPP_BUSINESS_ACCOUNT_ID,
phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID,
port: 8080,
webhookEndpoint: '/webhook',
webhookSecret: process.env.WHATSAPP_WEBHOOK_SECRET
})await whatsappClient.message.send({
message: new TextMessage({ text: 'hiii, this is wapijs SDK' }),
phoneNumber: 'XXXXXXXXXX'
})whatsappClient.on('TextMessage', (message) => {
console.log(message)
})whatsappClient.on('TextMessage', async (message) => {
message.reply({
message: new TextMessage({ text: 'hiii, this is wapijs SDK' }),,
})
})whatsappClient.initiate()
```## Upcoming features:
- [Interactive Address Message Support](https://developers.facebook.com/docs/whatsapp/cloud-api/messages/address-messages)
- [Business Management API Support](https://developers.facebook.com/docs/whatsapp/business-management-api)## Contribution Guidelines
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull RequestFor detailed guidelines, check [Contributing.md](./CONTRIBUTING.md).
## License
Distributed under the AGPL 3.0 License. View [LICENSE](./LICENSE).
## Contact
- [Sarthak Jain](https://sarthakjdev.com)
- Email: [email protected]
- [Twitter](https://twitter.com/sarthakjdev) | [LinkedIn](https://www.linkedin.com/in/sarthakjdev)Note: This SDK is part of an open-source product-building initiative by [Softlancer](https://github.com/softlancerhq), and this repository will soon be moved under the same organization.