Membuat Bot Whatsapp Dengan Python dan Chat-API

Maraknya bisnis online selama pandemi, membuat persaingan antar penjual semakin sengit. Salah satu upaya untuk meningkatkan kualitas layanan dan kepuasan pelanggan, owner memanfaatkan Bot Whatsapp. Bot Whatsapp akan membuat layanan customer service tersedia 24 jam perharinya. Bot Whatsapp akan memberikan kesempatan emas bagi owner bisnis untuk menjangkau audiens yang lebih luas dan memberikan pelayanan terbaik kepada pelanggan hingga mereka menjadi pelanggan loyal. Kamu bisa banget loh membuat Bot Whatsapp sendiri dengan bahasa Python dan Chat-API. Penasaran gimana caranya?

Chat-API
Sumber : Elipse Knowledgebase – Elipse Software

Menghubungkan Akun Whatsapp dan Chat-API

Untuk dapat mengakses layanan Bot, kamu harus menghubungkan akun whatsapp dengan Chat-API. Pertama, buat akun baru di web Chat-API. Setelah berhasil, website akan memberikan QR Code untuk akun kamu. Lalu, scan QR Code dengan memilih go to Settings → WhatsApp Web → Scan the QR code
Kamu membutuhkan WebHook URL untuk menyimpan data JSON berisikan chat masuk dan pemberitahuan chat kamu. Untuk itu, kamu memerlukan Flask Server untuk membuat menjalankan bot ini sekaligus menyimpan segala informasi chat

Membuat Perintah Bot Whatsapp

Buat file python baru. Beri nama wabot.py. Untuk membuat Bot Whatsapp ini, kamu akan memerlukan beberapa library yakni json, request, dan datetime. JSON berguna untuk menyimpan data dari server, request berguna untuk mengakses API website, sedangkan datetime untuk melakukan operasi yang berkaitan dengan waktu

import json 
import requests 
import datetime

Selanjutnya buat kelas konstruktor. Konstuktor secara default akan menerima data JSON berisikan informasi chat yang masuk.

class WABot(): 
   def __init__(self, json): 
           self.json = json 
           self.dict_messages = json['messages']  
           self.APIUrl = 'https://eu41.chat-api.com/instance12345/' 
           self.token = 'abcdefg'

Untuk mendapatkan service-api, kamu harus mengirimkan request. Fungsi send-request akan menerima dua parameter yakni method, dan data. Method akan berisi jenis method dalam fungsi (GET/POST), sedangkan data berisi informasi pesan dalam format JSON. Fungsi send_request akan me-return informasi chat WA

def send_requests(self, method, data):
    url = f"{self.APIUrl}{method}?token={self.token}"
    headers = {'Content-type': 'application/json'}
    answer = requests.post(url, data=json.dumps(data),
    headers=headers)
    return answer.json()

Kemudian, buat fungsi untuk mengirim pesan balasan. Seperti send_request, fungsi send_message juga memiliki dua parameter yakni chatID – ID pesan, dan text-isi pesan. Dalam fungsi ini, kamu akan membutuhkan dictionary untuk memecah chat ID dan text yang akan dikirimkan.

def send_message(self, chatID, text):
     data = {"chatID" : chatID,
     "body" : text}
     answer = self.send_requests('sendMessage', data)
     return answer

Jangan lupa untuk membuat welcome messages sebagai pesan pembuka bagi setiap user yang baru masuk. Misal dalam kasus ini kamu akan menawarkan brosur dan informasi mengenai lokasi toko Offline

def welcome(self,chatID, noWelcome = False):
     welcome_string = ''
     if (noWelcome == False):
     welcome_string = "Selamat Datang Di Toko ABC \n"
     else:
     welcome_string = """Perintah tidak dikenali
Commands:
1. brosur [format] - Download brosur terbaru, format yang tersedia: doc/jpg/png/pdf
2. alamat- Tampilkan alamat toko offline
    return self.send_message(chatID, welcome_string)

Buat tampilan output untuk perintah brosur. Untuk membuat fungsi brosur, kamu membutuhkan chatID dan format. Kamu juga harus menyiapkan file brosur yang nantinya akan disimpan dalam server

def brosur(self, chatID, format):
    availableFiles = {'doc' : 'brosur.doc',
    'jpg' : 'brosur.jpg',
    'png' : 'brosur.png',
    'pdf' : 'brosur.pdf',
    if format in availableFiles.keys():
       data = {
         'chatId' : chatID,
        'body': f'https://domain.com/Python/{availableFiles[format]}',
'filename' : availableFiles[format],
'caption' : f'Get your file {availableFiles[format]}'
       }
     return self.send_requests('sendFile', data)

Selanjutnya, buat auto-reply untuk alamat.

def alamat(self, chatID):
   data = {
   "lat" : '51.51916',
   "lng" : '-0.139214',
   "address" :'Toko ABC \nJalan Plamongan Indah Blok E2 No 17',
   "chatId" : chatID
   }
   answer = self.send_requests('sendLocation', data)
   return answer

Terakhir, buat fungsi untuk memproses chat yang masuk dari user

def processing(self):
    if self.dict_messages != []:
        for message in self.dict_messages:
            text = message['body'].split()
            if not message['fromMe']:
                id = message['chatId']
                if text[0].lower() == 'brosur':
                    return self.brosur(id, text[1])
                elif text[0].lower() == 'geo':
                    return self.alamat(id)
            else:
                return self.welcome(id, True)
    else: return 'Perintah Tidak Valid'

Ganti token dengan token dari akun kamu. Klik disini untuk mendapatkan token.

Membuat Server

Tahapan kedua dalam membuat bot whatsapp adalah membuat server. Dalam membuat server, kita akan menggunakan framework Flask. Buat app.py kemudian tuliskan kode berikut

from flask import Flask, request, jsonify
from wabot import WABot
import json

app = Flask(name)

@app.route('/', methods=['POST'])

def home():
   if request.method == 'POST':
   bot = WABot(request.json)
   return bot.processing()
if(name) == 'main':
    app.run()

Bot telah selesai dan siap digunakan

Nah, itulah tutorial membuat Bot Whatsapp Dengan Python dan Chat-API. Apabila kamu mengalami kendala, tuliskan masalahmu di komentar ya!

Baca Juga : 5 HOSTING GRATIS BUAT WEBSITE KAMU

One Reply to “Membuat Bot Whatsapp Dengan Python dan Chat-API”

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *