tutorial

Whatsapp Bot starter code

1 Pastikan komponen berikut telah terinstall:

  1. node.js

2 inisialisasi project dan Instal dependencies

Buat folder project kemudia melalui code editor masukkan ke folder project tersebut. kemudian buka terminal, lalu ketikkan kode berikut:

  1. sudo yum install npm
    • (install nodel modules)
  2. npm init -y
    • inisialisasi project
  3. npm i whatsapp-web.js
    • (install whatsapp js untuk whatsapp bot)
  4. npm i qrcode-terminal
    • install qrcode untuk scan qr untuk menautkan akun whatsapp
  5. npm i -g nodemon
    • agar code restart otomatis ketika ada perubahan kode
  6. npm i puppeteer
    • npm install puppeteer@19.7.5 (stable version)
    • puppeter sudah include di whatsapp-web.js
    • to remove npm uninstall puppeteer
    • jika dikemudian hari whatsappweb atau nodehtml to image tidak berfungsi dengan baik karena puppeteer error update saja library whatsappweb.js atau/dan node-html-to-image ke version terbaru
  7. npm i node-html-to-image
    • konversi html ke image
  8. npm i axios
    • untuk komunikasi dengan api
  9. npm i mysql
    • untuk komunikasi dengan mysql database

3 struktur file package.json,

setelah melakukan hal diatas struktur filenya akan menjadi seperti berikut

  • nama aplikasi : bot-wa
  • script yg pertama di run nodemon app.js
  • dependencies pihak ketiga yang terinstall:
    • axios
    • mysql
    • node-html-to-image
    • puppeteer
    • qrcode-terminal
    • whatsapp-web.js
{
  "name": "bot-wa",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.3.3",
    "mysql": "^2.18.1",
    "node-html-to-image": "^3.3.0",
    "puppeteer": "^19.7.0",
    "qrcode-terminal": "^0.12.0",
    "whatsapp-web.js": "^1.19.4"
  }
}

4 Buat file app.js

masukkan starter code berikut

const qrcode = require('qrcode-terminal')
const fs = require('fs')
const { Client, LegacySessionAuth, LocalAuth, MessageMedia } = require('whatsapp-web.js')
const client = new Client({
    authStrategy: new LocalAuth({
        clientId: "client-one"
    }),
    puppeteer: { headless: true,args: ['--no-sandbox', '--disable-setuid-sandbox']} 
})

// Save session values to the file upon successfull auth
client.on('authenticated', (session) => {
    console.log(session)
})

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

client.on('ready', () => {
    console.log("ready to message")
})

client.on('message', message => {
    if(message.body == '!ping') {
        message.reply('pong')
    } 
})

pada code line 26-28 ketika kita mendapatkan pesan !ping maka wabot akan membalas dengan text ‘pong’. silahkan modifikasi atau kode tersebut sesuai kebutuhan.

code line tersebut menerima semua pesan baik dari group, atau personal chat. olehnya itu anda membuat pengkondisian terlebih dahulu agar yang dieksekusi hanya pesan personal saja atau group tertentu saja.

catatan

Berikut struktur isi dari variabel message :

anda dapat melakukan modifikasi kode sesuai kebutuhan dengan melihat struktur isi variabel tersebut.

5 Run project

ketikkan kode berikut pada terminal npm run start

kemudian akan muncul qrcode, silahkan tautkan whatsapp pada smartphone anda dengan menscan qr code tersebut

demikian

reference:

Related Articles

Leave a Reply

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

Back to top button
Index