cara membuat bot whatsapp

Cara Membuat Bot Whatsapp dengan whatsapp-web.js

Ingin membuat bot whatsapp sendiri tapi tidak tahu bagaimana caranya? Tenang saja kalian bisa membuat bot whatsapp dengan mudah menggunakan whatsapp-web.js

whatsapp-web.js merupakan whatsapp API client yang terhubung melalui aplikasi browser whatsapp web dengan menggunakan Puppeteer agar tidak terkena blokir.

Meskipun begitu, tidak ada jaminan akun kalian tidak akan terblokir karena whatsapp tidak mengizinkan bot atau client tidak resmi di platform mereka. Oleh karena itu, metode ini masih belum sepenuhnya aman.

Instalasi

Pertama, kalian harus install nodeJS dan NPM terlebih dahulu. Pastikan kalian install nodeJS versi 12 keatas. Setelah itu, buat folder dengan nama bot-whatsapp. Di dalam folder tersebut install module whatsapp-web.js dan qrcode-terminal menggunakan npm seperti berikut.

npm i whatsapp-web.js qrcode-terminal

whatsapp-web.js merupakan module yang nantinya digunakan untuk menjalankan Whatsapp Web di belakang layar. Untuk mengotomatiskan interaksinya diperlukan otorisasi client melalui scanning QR code dari aplikasi Whatsapp di hp kalian.

BACA JUGA: CARA MEMBUAT INSTAGRAM BOT DENGAN INSTAPY

Buat Bot Whatsapp

Selanjutnya, buka folder bot-whatsapp menggunakan text editor kalian. Langkah pertama yaitu kita akan membuat qr code generation yang nantinya akan di hubungkan dengan whatsapp-web.js

const qrcode = require('qrcode-terminal');

const { Client } = require('whatsapp-web.js');
const client = new Client();

client.on('qr', qr => {
    qrcode.generate(qr, {small: true});
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.initialize();
  • Baris 1 dan 3, kita mengambil module yang tadi telah diinstall dengan di masukan ke dalam const
  • Baris 4, kita membuat instance object pada Client yang nantinya digunakan untuk otorisasi client
  • Baris 6, kita generate qr code untuk digunakan sebagai otorisasi client melalui scanning qr code di aplikasi whatsapp
  • Baris 10, akan menampilkan pesan ‘Client is ready!’ di console jika otorisasi client berhasil

Ketika dijalankan maka akan muncul qr code, kalian tinggal scanning qr code tersebut melalui whatsapp kalian.

cara membuat bot whatsapp qr code

Selanjutnya, kita akan menambahkan fitur untuk melihat dan membalas pesan whatsapp melalui bot yang telah otorisasi barusan.

Melihat Pesan Whatsapp Melalui Bot

Untuk melihat pesan yang masuk di whatsapp dengan menggunakan whatsapp-web.js sangatlah mudah. Client akan menangkap setiap pesan yang diterima kemudian pesan yang ditangkap tersebut kita masukkan ke dalam console.log() untuk ditampilkan ke dalam console.

client.on('message', message => {
  console.log(message.body);
});

Membalas Pesan Whatsapp Melalui Bot

Kita juga bisa langsung membalas pesan yang diterima dengan mudah. Hanya menggunakan function reply. Tetapi, kita perlu menangkap pesannya terlebih dahulu yang kemudian dicek dan disesuaikan dengan balasan yang tepat.

client.on("message", (message) => {
  if (message.body == "terimakasih") {
    message.reply("sama-sama");
  }
});
  • Baris 2, untuk mengecek apakah pesan yang ditangkap itu sama dengan “terimakasih”
  • Baris 3, untuk membalas pesan yang berisi “terimakasih” dengan balasan “sama-sama”
cara membuat bot whatsapp 1

Selain itu, kita juga bisa untuk tidak mengirimkan pesan sebagai balasan yang dikutip menggunakan function sendMessage.

let greeting = ["halo", "hai", "hi", "hello"];

client.on("message", (message) => {
  if (greeting.includes(message.body)) {
    client.sendMessage(message.from, "hai");
  }
});
  • Baris 1, kita buat array yang berisi salam yang dimasukan ke dalam let greeting
  • Baris 4, untuk mengecek pesan yang diterima harus sesuai dengan salam yang ada di greeting
  • Baris 5, untuk mengirimkan pesan “hai” kepada pengirim pesan sebelumnya
cara membuat bot whatsapp 2

BACA JUGA: CARA MEMBUAT BOT DISCORD DENGAN PYTHON

Membuat Session

Kita tidak ingin scan qr code setiap kali kita merestart bot whatsaap. Oleh karena itu, kita bisa menyimpan info session yang didapat dari authenticated event dan kemudian meneruskannya sebagai opsi saat membuat instace client.

const fs = require('fs');
const { Client } = require('whatsapp-web.js');

const SESSION_FILE_PATH = './session.json';

let sessionData;
if(fs.existsSync(SESSION_FILE_PATH)) {
    sessionData = require(SESSION_FILE_PATH);
}

const client = new Client({
    session: sessionData
});

client.on('authenticated', (session) => {
    sessionData = session;
    fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), (err) => {
        if (err) {
            console.error(err);
        }
    });
});
  • Baris 1 dan 2, untuk mengambil module ‘fs’ dan ‘whatsapp-web.js’ yang nantinya akan digunakan.
  • Baris 4, untuk tempat penyimpanan session data.
  • Baris 6 dan 7, untuk pengecekan apakah session data telah disimpan sebelumnya, jika iya maka akan memuat session data yang sebelumnya telah disimpan.
  • Baris 11, untuk menggunakan session data sebagai opsi saat membuat client.
  • Baris 15, untuk menyimpan session values ke file setelah autentikasi berhasil.

Jalankan file node index.js dan scanning qr code terlebih dahulu untuk membuat session. Setelah itu, kita tidak perlu scan qr code kembali karena session data telah disimpan.

Penutup

Selamat kita telah berhasil membuat bot whatsapp sederhana menggunaka whatsapp-web.js dan masih banyak fitur lainnya mengirim file, mengirim pesan dengan ditambahi mention dan masih banyak lagi.

Kalian bisa membaca dokumentasi whatsapp-web.js sendiri untuk lebih lengkapnya. Untuk gabungan codenya bisa lihat berikut ini.

const qrcode = require("qrcode-terminal");
const { Client } = require("whatsapp-web.js");
const fs = require("fs");

const SESSION_FILE_PATH = "./session.json";

let sessionData;

if (fs.existsSync(SESSION_FILE_PATH)) {
  sessionData = require(SESSION_FILE_PATH);
}

const client = new Client({
  session: sessionData,
});

client.on("authenticated", (session) => {
  sessionData = session;

  fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), (err) => {
    if (err) {
      console.error(err);
    }
  });
});

client.on("qr", (qr) => {
  qrcode.generate(qr, { small: true });
});

client.on("ready", () => {
  console.log("Client is ready!");
});

client.initialize();

let greeting = ["halo", "hai", "hi", "hello"];

client.on("message", (message) => {
  if (message.body == "terimakasih") {
    message.reply("sama-sama");
  }

  if (greeting.includes(message.body)) {
    client.sendMessage(message.from, "hai");
  }
});

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top