Dokumentasi - Membuat Webhook
Pengenalan
Webhook adalah cara bagi aplikasi untuk menyediakan data real-time kepada sistem lain, Webhook memungkinkan anda untuk mengirimkan data ke endpoint API setiap kali peristiwa tertentu terjadi.
Mengatur Endpoint
Untuk mulai menggunakan webhook, anda perlu mengatur url webhook pada perangkat anda yang sudah terhubung di Wa Vave, Url webhook ini akan menerima data dari sistem kami setiap kali peristiwa terjadi,
Url webhook ini harus menerima permintaan POST dengan payload JSON.
Tangani Pesan Masuk
Berikut adalah contoh payload yang diterima oleh endpoint webhook anda, ini adalah pesan type text
{
"device": "62812345678",
"messageid": "3EB0F7E3D4B071944518E3",
"type": "text",
"messagebody": "Halo apa kabar hari ini?",
"url": "false",
"profilename": "Wa Vave",
"group": "false"
}
Penjelasan
Properti | Nilai | Deskripsi |
---|---|---|
device | Number | Nomor WhatsApp pengirim |
messageid | String | ID pesan unik yang bisa anda simpan di aplikasi anda |
type | String | Type pesan memiliki nilai yang berbeda, saat ini tersedia untuk ( text, image, voice, audio, document, sticker, reaction, ciphertext, grup) |
messagebody | String | Isi pesan dari pengirim |
url | String | Jika type adalah text nilainya false, jika type pesan adalah media nilainya berisi url base64 |
profilename | String | Nama pengirim |
group | String | Jika pesan berasal dari grup whatsapp nilainya adalah true dan nilai type adalah grup |
Menangani Permintaan
Di bawah ini adalah contoh cara menangani permintaan webhook di server anda menggunakan kode php
<?php
header('Content-Type: application/json; charset=utf-8');
$data = json_decode(file_get_contents('php://input'), true);
if ($data) {
// Mengubah data JSON menjadi variabel
$device = $data['device'] ?? '';
$messageid = $data['messageid'] ?? '';
$type = $data['type'] ?? '';
$messagebody = $data['messagebody'] ?? '';
$url = $data['url'] ?? '';
$profilename = $data['profilename'] ?? '';
$group = $data['group'] ?? '';
function KirimPesan($to, $pesan, $from, $type, $url, $delay, $apiKey) {
$data = json_encode([
'to' => $to,
'pesan' => $pesan,
'from' => $from,
'Type' => $type,
'url' => $url,
'delay' => $delay
]);
// Endpoint API
$endpoint = 'https://api.wavave.com/v1/send';
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length: ' . strlen($data),
'Authorization: Bearer ' . $apiKey
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$from = 62812345678; // Sesuaikan dengan nomor pengirim anda
$pesan = "Halo $profilename, ini adalah balasan otomatis!";
$delay = 5; // 5 detik
$apiKey = 'YOUR_API_KEY'; // Api Key
$jenispesan = 'text'; // text atau media
$response = KirimPesan($device, $pesan, $from, $jenispesan, $url, $delay, $apiKey);
// Menampilkan respon
echo $response;
} else {
echo json_encode(['error' => 'No data received']);
}
Tangani Pesan Dibaca
Berikut adalah contoh payload yang diterima oleh endpoint webhook anda ketika ada pesan yang dibaca atau gagal.
{
"device": "62812345678",
"profilename": "Wa Vave",
"messageid": "3EB0F7E3D4B071944518E3",
"status": "read",
"group": "false"
}
Penjelasan
Properti | Nilai | Deskripsi |
---|---|---|
device | Number | Nomor whatsApp terdaftar di wa vave |
messageid | String | ID pesan unik yang sebelumnya anda terima |
status | String | read / failed |
profilename | String | Nama yang tertera pada perangkat terhubung |
group | String | Bernilai true jika pesan berasal dari grup whatsapp |
Pesan yang kami teruskan ke webhook
Type | Diteruskan | Langganan | Keterangan |
---|---|---|---|
text | Free / Berbayar | Notifikasi webhook akan dikirim untuk paket free dan berbayar | |
image | Berbayar | Maksimal ukuran file 10MB | |
voice | Berbayar | Deprecated | |
File Audio | Berbayar | Maksimal ukuran file 10MB | |
video | Berbayar | Maksimal ukuran file 10MB | |
document | Berbayar | Maksimal ukuran file 10MB | |
grup | Berbayar | Khusus pesan text | |
sticker | Free / Berbayar | Coming soon | |
location | Free / Berbayar | Coming soon | |
interactive | Free / Berbayar | Coming soon | |
reaction | Free / Berbayar | Coming soon | |
ciphertext | Free / Berbayar | Coming soon |