Tutorial Membuat WhatsApp API Menggunakan Library Baileys Adiwajshing
WhatsApp adalah aplikasi pesan instan yang memungkinkan pengguna untuk mengirim dan menerima pesan teks, gambar, video, dan suara. Aplikasi ini juga memungkinkan pengguna untuk membuat dan bergabung dengan grup, membuat panggilan video, dan mengirim pesan ke kontak lain.
Saat ini WhatsApp sudah menjadi kebutuhan harian kita dalam melakukan komunikasi secara online, sudah bisa menggantikan aplikasi sms dan panggilan bawaan dari HP, hebat ya. Banyak usaha yang melibatkan WhatsApp sehingga memerlukan aplikasi tambahan/program untuk menangani customernya yang sangat banyak.
Kali ini kita akan mulai membuat service API yang bisa digunakan untuk mengirim pesan WhatsApp dari sistem, bisa digunakan untuk mengirim OTP ataupun mengirim pesan notifikasi lainnya. Ikuti langkah-berikut:
1. Install library Baileys, and other
Hal pertama yang harus kamu lakukan yaitu menginstall library baileys, dan yg lainnya. Salin dan tempel kode berikut di terminal kamu yang sudah terinstall NPM
Install Baileys
npm install @adiwajshing/baileys
Install Express
npm install express
Install qrcode-terminal
npm install qrcode-terminal
2. Buat file index.js
Kali ini kita akan membuatnya simpel hanya dalam 1 file.
a. Gunakan dependencies yang dibutuhkan
Panggil semua library yang udah kita install sebelumnya
const { default: makeWASocket, DisconnectReason, Browsers, useMultiFileAuthState } = require('@adiwajshing/baileys');
const fs = require('fs');
const express = require("express");
const bodyParser = require("body-parser");
b. Buat fungsi untuk menghubungkan WhatsApp
Bagian ini cukup penting, karena berisi konfigurasi yang akan menghubungkan WhatsApp kamu agar bisa digunakan untuk mengirim pesan.
async function connectToWhatsApp () {
const { state, saveCreds } = await useMultiFileAuthState(`sessions/mas2it`)
client = makeWASocket({
printQRInTerminal: true,
auth: state,
version: [2, 2204, 13],
browser: Browsers.ubuntu('Chrome')
});
client.ev.on('creds.update', saveCreds);
client.ev.on('connection.update', function (update, connection2) {
let _a, _b;
let connection = update.connection, lastDisconnect = update.lastDisconnect;
if (connection === 'close') {
if (((_b = (_a = lastDisconnect.error) === null || _a === void 0 ? void 0 : _a.output) === null || _b === void 0 ? void 0 : _b.statusCode) !== DisconnectReason.loggedOut) {
connectToWhatsApp()
}
else {
console.log('connection closed');
fs.rmdir(`sessions/mas2it`, { recursive: true }, (err) => {
if (err) {
throw err;
}
console.log(`session is deleted`);
});
}
}
if (connection === 'open') {
console.log("WhatsApp Connected")
}
});
}
connectToWhatsApp()
c. Buat Konfigurasi Express
Supaya script kamu bisa berjalan, kamu perlu membuat konfigurasi express dan berjalan di port yang kamu inginkan, contoh berikut berjalan di port 3000.
d. Buat API kirim pesan
Buat API kirim pesan text via API, kamu bisa melihat kodenya dibawah ini
e. Buat Routing
Kamu harus membuat routing agar API kamu bisa diakses, kali ini saya membuatnya dengan /send/message dan menghubungkannya dengan fungsi SendMessage
app.post('/send/message', sendMessage);
---
Jika kamu sudah mengikutinya sampai akhir dan menyimpannya didalam file index.js, kamu cukup menjalankannya dengan perintah node index.js. ketika muncul qrcode, kamu harus scan menggunakan aplikasi WhatsApp seperti kamu menghubungkan dengan WhatsApp Web.
Jika WhatsApp sudah terhubung, kamu akan melihat pesan WhatsApp Connected diterminal, kamu bisa mulai mengirim pesan WhatsApp via API jika sudah terhubung.
Mengirim Pesan WhatsApp via API
URL: http://localhost:3000/send/message
Method: POST
Body:
{
"message":"Your message",
"phone":"628123456789"
}
Pada bagian body, kamu harus membuatnya dengan format JSON
Pada bagian phone, kamu harus membawa kode negara didepannya dan diikuti dengan nomor penerima
---
Cukup mudah bukan membuatnya? Tutorial ini masih basic, pada tutorial selanjutnya akan membahas fungsi yang lain dari library ini yang tentunya lebih canggih.
Kalau ada yang mau ditanyain bisa langsung dikolom komentar. Selamat mencoba.