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'] ?? '';
            $status = $data['status'] ?? '';
            
            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 = 'random'; // 1 - 60 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 sent / 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