Pesan polling

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.

Menangani Permintaan

Salin kode dibawah dan simpan di server anda dengan nama file misalnya webhook.php

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

$data = json_decode(file_get_contents('php://input'), true);

$apiKey = 'YOUR_API_KEY'; // API Key

if ($data) {
    $device = $data['device'] ?? '';
    $from = $data['from'] ?? '';
    $profilename = $data['profilename'] ?? '';
    $messageid = $data['messageid'] ?? '';
    $type = $data['type'] ?? ''; // text, textreply, imagereply, image, video, document, audio, sticker, location, interactive, reaction
    $messagebody = $data['messagebody'] ?? '';
    $isForwarded = $data['isForwarded'] ?? '';
    $dataMedia = $data['dataMedia'] ?? '';
    $group = $data['group'] ?? '';
    $button = $data['button'] ?? '';
    $CatalogDetails = $data['CatalogDetails'] ?? '';
    $dataforwarded = $data['dataforwarded'] ?? '';
    $locationName = $data['locationName'] ?? '';
    $Latitude = $data['Latitude'] ?? '';
    $Longitude = $data['Longitude'] ?? '';
    $reactionsid = $data['reactionsid'] ?? '';
    $deviceStatus = $data['deviceStatus'] ?? '';
    $code = $data['code'] ?? '';
    $reason = $data['reason'] ?? '';
    $status = $data['status'] ?? '';
    
    $dataMedia = json_encode($dataMedia, JSON_UNESCAPED_SLASHES);
    $messagebody = json_encode($messagebody, JSON_UNESCAPED_UNICODE);
  
    function KirimPesan($to, $pesan, $device, $type, $url, $delay, $apiKey) {
        $data = json_encode([
            'from' => $device,
            'to' => $to,
            'message' => $pesan,
            '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
    $jenispesan = 'text'; // text atau media
    $target = $data['from'] ?? ''; // Nomor penerima

    $response = KirimPesan($target, $pesan, $from, $jenispesan, $url, $delay, $apiKey);
    echo $response;

} else {
    echo json_encode(['error' => 'No data received']);
}
    

Tangani pesan polling masuk

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesan polling baru yang masuk, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "628123456789",
    "messageid": "3EB0E2D64F231FB57055",
    "type": "polling",
    "profilename": "Wa Vave",
    "from": "62811111111",
    "button": [
        {
            "type": "polling",
            "selectableOptionsCount": 0
        },
        {
            "name": "Silakan pilih polling berikut",
            "options": [
                {
                    "optionName": "Satu"
                },
                {
                    "optionName": "Dua"
                },
                {
                    "optionName": "Tiga"
                }
            ]
        }
    ],
    "isForwarded": false
}

Penjelasan Pesan Polling

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim dalam format internasional : 628123456789
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
button Array of Object Properti button merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail polling yang anda terima dari pengguna
selectableOptionsCount Number Jika bernilai 0 = Polling tersebut mengizinkan anda untuk memilih beberapa pilihan sekaligus
Jika bernilai 1 = Polling tersebut hanya mengizinkan anda untuk memilih satu pilihan saja
name String Judul polling yang dibuat oleh pengguna
options Array Array yang berisi objek-objek pilihan, Masing-masing objek di dalam array ini memiliki properti optionName yang menyimpan nama opsi yang dapat dipilih.
isForwarded Boolean Bernilai "true" jika pesan hasil "Diteruskan" oleh pengguna