Membuat whatsapp bot dengan PHP

Chatbot statis berguna untuk menjawab pertanyaan user yang hanya membutuhkan informasi-informasi umum, seperti FAQ.

Namun untuk informasi yang bersifat dinamis, seperti ketersediaan stok, harga yang berubah-ubah, detail profil user, dan sebagainya, dashboard fonnte tidak bisa membantu lebih jauh.

Disinilah penggunaan webhook akan berguna.

Kamu bisa membuat informasi apapun yang dibutuhkan secara dinamis dan realtime langsung dari database dengan menggunakan webhook

Tutorial ini memerlukan pemahaman dasar tentang bahasa pemrograman PHP. Kalau kamu belum memiliki pengalaman menuliskan kode atau tidak tahu harus melakukan apa, sebaiknya pertimbangkan untuk menggunakan jasa developer.

Prasyarat

Sebelum menggunakan API ini, kamu harus mendaftar kalau belum punya akun, kemudian login dan tambah device.

Copy token (API key) yang ada di menu device untuk digunakan sebagai authorization saat mengirimkan API.

Lalu, konekkan device sebelum mulai mengirimkan pesan.

Gunakan libcurl terbaru dengan versi PHP diatas 7.1 sebagaimana diperlukan dalam sebagai requirement oleh PHP.

Referensi API lengkap ada di halaman dokumentasi fonnte dan postman.

Kode webhook

Dengan menggunakan webhook fonnte, kamu bisa membuat whatsapp bot secara dinamis sesuai dengan isi database.

Tapi tidak perlu khawatir, kami tidak bisa mengakses database yang dipakai.

Semua kode tetap berada di server sendiri.

Kamu hanya perlu menginput url filenya ke inputan webhook di menu device->edit

Pertama-tama, copy kode dibawah ini

<?php
header('Content-Type: application/json; charset=utf-8');

$json = file_get_contents('php://input');
$data = json_decode($json, true);
$device = $data['device'];
$sender = $data['sender'];
$message = $data['message'];
$name = $data['name'];

function sendFonnte($target, $data) {
	$curl = curl_init();

	curl_setopt_array($curl, array(
	  CURLOPT_URL => "https://api.fonnte.com/send",
	  CURLOPT_RETURNTRANSFER => true,
	  CURLOPT_ENCODING => "",
	  CURLOPT_MAXREDIRS => 10,
	  CURLOPT_TIMEOUT => 0,
	  CURLOPT_FOLLOWLOCATION => true,
	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST => "POST",
	  CURLOPT_POSTFIELDS => array(
	    	'target' => $target,
	    	'message' => $data['message'],
	    	'url' => $data['url'],
	    	'filename' => $data['filename'],
	    ),
	  CURLOPT_HTTPHEADER => array(
	    "Authorization: TOKEN"
	  ),
	));

	$response = curl_exec($curl);

	curl_close($curl);

	return $response;
}

if ( $message == "test" ) {
	$reply = [
		"message" => "working great!",
	];
} elseif ( $message == "image" ) {
	$reply = [
		"message" => "image message",
		"url" => "https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg",
	];
} elseif ( $message == "audio" ) {
	$reply = [
	        "message" => "audio message",
		"url" => "https://filesamples.com/samples/audio/mp3/sample3.mp3",
		"filename" => "music",
	];
} elseif ( $message == "video" ) {
	$reply = [
		"message" => "video message",
		"url" => "https://filesamples.com/samples/video/mp4/sample_640x360.mp4",
	];
} elseif ( $message == "file" ) {
	$reply = [
		"message" => "file message",
		"url" => "https://filesamples.com/samples/document/docx/sample3.docx",
		"filename" => "document",
	];
} else {
	$reply = [
		"message" => "Sorry, i don't understand. Please use one of the following keyword :
		    
Test
Audio
Video
Image
File",
];
}

sendFonnte($sender, $reply);

Fungsi sendFonnte bisa menggunakan seluruh API parameter yang tersedia di API fonnte

Kamu bisa mendapatkan data dari database dan membuat balasannya.

Kemudian. simpan kode ini dan input absolute urlnya ke inputan webhook di menu device->edit.

Url ini wajib bersifat public.

Contoh : https://fonnte.com/urlwebhook.php

Yang terakhir dan yang paling penting adalah mengubah setting autoread ke on.

Setting ini ada dibawah inputan url webhook.

Dengan demikian, devicenya sudah bisa membalas pesan whatsapp dengan dinamis.

Leave a Comment