Skip to content

sarthakjdev/wapi.js

Repository files navigation


@wapijs/wapi.js


📌 Status

Beta Version - This library is not stable right now. It is currently in beta version. Report issues here.

📖 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: Interact with WhatsApp cloud API with simple and easy-to-manage code.
  • @wapijs/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 library.

npm install @wapijs/wapi.js
yarn add @wapijs/wapi.js
pnpm install @wapijs/wapi.js

Note: This library 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 library 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.
  • You can check out the example WhatsApp bot here. Example Chatbot
  • You can get started with the development of your bot with this starter template utility.
pnpm create-wapi-app

🔗 References

  • Message Structures: Refer to the WhatsApp Docs here.

  • Notification Payloads: Details can be found here.

🔗 Other Links

Example Usage

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 library' }),
		phoneNumber: 'XXXXXXXXXX'
	})

	whatsappClient.on('TextMessage', (message) => {
		console.log(message)
	})

	whatsappClient.on('TextMessage', async (message) => {
		message.reply({
			message: new TextMessage({ text: 'hiii, this is wapijs library' }),,
		})
	})

	whatsappClient.initiate()

🤝 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 Request

For detailed guidelines, check Contributing.md.

📜 License

Distributed under the Apache 2.0 License. View LICENSE.

📞 Contact

Note: This library is part of an open-source product-building initiative by Softlancer, and this repository will soon be moved under the same organization.