@selfrwrd/baileys
v1.0.5
Published
Super WhatsApp Web API
Maintainers
Readme
Baileys (Mod)
Baileys adalah library WhatsApp Web API non-resmi yang ringan, lengkap, dan canggih, ditulis dalam JavaScript/TypeScript.
🚀 Tentang Proyek Ini
Library ini berkomunikasi langsung dengan WebSocket WhatsApp, sehingga tidak memerlukan browser otomatis seperti Selenium. Ini membuatnya sangat cepat, efisien, dan ideal untuk bot atau otomatisasi.
Berdasarkan file yang ada, versi ini tampaknya mendukung fitur-fitur modern WhatsApp, termasuk:
- Pesan: Mengirim dan menerima semua jenis pesan (teks, gambar, video, audio, stiker, dokumen, lokasi).
- Manajemen Grup: Membuat grup, menambah/mengeluarkan anggota, mengubah admin, memperbarui info grup.
- Manajemen Komunitas: Dukungan untuk fitur Komunitas WhatsApp.
- Manajemen Newsletter: Kemampuan untuk berinteraksi dengan Saluran (Newsletter).
- Fitur Bisnis: Interaksi dengan katalog produk dan fitur WhatsApp Business lainnya.
- Multi-Device: Mendukung mode Multi-Device secara penuh.
- Event Listener: Mendengarkan berbagai pembaruan real-time (status koneksi, pesan masuk, pembaruan grup, status dibaca, dll.).
⚠️ Peringatan Wajib (Disclaimer)
PENTING: Ini adalah API non-resmi dan penggunaannya melanggar Ketentuan Layanan WhatsApp. Akun Anda memiliki risiko untuk diblokir (di-banned) secara sementara atau permanen oleh WhatsApp.
Gunakan dengan risiko Anda sendiri. Developer tidak bertanggung jawab atas segala konsekuensi yang timbul dari penggunaan library ini.
💾 Instalasi
Anda dapat menginstal library ini menggunakan npm atau yarn:
npm install @selfrwrd/baileys
Atau jika Anda menggunakan yarn:
yarn add @selfrwrd/baileys
⚡ Contoh Penggunaan
Berikut adalah contoh dasar untuk terhubung ke WhatsApp, mencetak QR code di terminal, menyimpan sesi, dan membalas pesan "ping" dengan "pong".
const { default: makeWASocket, useMultiFileAuthState, DisconnectReason } = require('@selfrwrd/baileys');
const { Boom } = require('@hapi/boom');
const pino = require('pino');
// Fungsi utama untuk menjalankan bot
async function connectToWhatsApp() {
// Siapkan penyimpanan otentikasi multi-file
const { state, saveCreds } = await useMultiFileAuthState('baileys_auth_info');
// Buat koneksi socket
const himmel = makeWASocket({
// Gunakan logger pino (level 'silent' agar tidak terlalu berisik)
logger: pino({ level: 'silent' }),
printQRInTerminal: true,
auth: state
});
// Menyimpan kredensial setiap kali ada pembaruan
himmel.ev.on('creds.update', saveCreds);
// Menangani pembaruan koneksi
himmel.ev.on('connection.update', (update) => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
// Cek apakah perlu menyambung ulang
const shouldReconnect = (lastDisconnect.error instanceof Boom)
? lastDisconnect.error.output.statusCode !== DisconnectReason.loggedOut
: true;
console.log('Koneksi terputus:', lastDisconnect.error, ', menyambung ulang:', shouldReconnect);
if (shouldReconnect) {
connectToWhatsApp();
}
} else if (connection === 'open') {
console.log('Koneksi berhasil tersambung! ✨');
}
});
// Menangani pesan yang masuk
himmel.ev.on('messages.upsert', async (m) => {
console.log('Pesan baru:', JSON.stringify(m, undefined, 2));
// Ambil pesan pertama (selalu dalam bentuk array)
const msg = m.messages[0];
if (!msg.key.fromMe && m.type === 'notify') {
// Cek jika pesan adalah "ping"
if (msg.message?.conversation === 'ping') {
await himmel.sendMessage(msg.key.remoteJid, { text: 'pong!' }, { quote: msg });
}
}
});
}
// Jalankan bot
connectToWhatsApp();
📄 Lisensi
Proyek ini (Baileys) dilisensikan di bawah Lisensi MIT.
