Menangani Data Webhook di PHP dan Mengarahkan ke Beberapa Titik Akhir

Pendahuluan:

Webhook sangat penting untuk mengintegrasikan berbagai layanan yang berbeda, memungkinkan komunikasi waktu nyata di antara mereka. Webhook sering kali dipicu oleh peristiwa dalam satu sistem, mengirimkan data terstruktur ke titik akhir lain. Namun, beberapa sistem membatasi dukungan webhook pada satu titik akhir. Pada artikel ini, kita akan membahas cara menangani data webhook di PHP, menyimpannya secara lokal, dan kemudian meneruskannya ke beberapa titik akhir. Selain itu, kita akan mengeksplorasi opsi non-programatis menggunakan alat otomatisasi untuk mencapai tujuan yang sama.

Panduan Langkah-demi-Langkah untuk Menerima dan Mengarahkan Webhook di PHP

Menerima Data Webhook

Untuk mengambil data dari webhook, gunakan fungsi file_get_contents() dari PHP untuk membaca badan permintaan. Contoh ini mengasumsikan data JSON, yang biasa digunakan dalam webhook. Cuplikan kode di bawah ini menunjukkan cara menerima dan mencatat data webhook.

<?php
// Capture the raw webhook data
$data = file_get_contents("php://input");
$event = json_decode($data, true);

// Log the event data (Optional)
if (isset($event)) {
    $file = 'log.txt';  
    $log_data = json_encode($event) . "\n";  
    file_put_contents($file, $log_data, FILE_APPEND | LOCK_EX);
}

// Define the endpoints where data will be sent
$endpoints = [
    "https://example1.com/webhook-endpoint", // First endpoint
    "https://example2.com/webhook-endpoint"  // Second endpoint
];

// Function to send webhook data to another endpoint
function forwardWebhook($url, $data) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    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)
    ]);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// Send data to each endpoint in the list
foreach ($endpoints as $endpoint) {
    forwardWebhook($endpoint, json_encode($event));
}
?>

Penjelasan:

  • Menerima Data: Kami menggunakan file_get_contents("php://input") untuk menangkap data yang diterima dari webhook.
  • Mencatat Data: Langkah ini bersifat opsional dan mencatat data ke dalam file (log.txt) untuk konfirmasi dan debugging.
  • Titik akhir: Tentukan URL tempat data akan diteruskan.
  • Fungsi Penerusan: forwardWebhook() adalah fungsi yang menggunakan cURL untuk mengirim data dalam format POST ke setiap titik akhir yang ditentukan.
  • Mengirim Data: Perulangan foreach mengirimkan data ke setiap titik akhir webhook dalam daftar yang ditentukan.

Menguji dan Memantau Skrip

Untuk memastikan skrip Anda berfungsi seperti yang diharapkan, ujilah dengan berbagai permintaan webhook. Pastikan setiap titik akhir menerima data dengan benar. Anda dapat memeriksa file log.txt untuk memverifikasi data diterima dan disimpan dengan benar sebelum diteruskan.

Solusi Alternatif: Menggunakan Alat Otomasi

Jika Anda lebih suka pendekatan tanpa kode, beberapa platform otomatisasi memungkinkan Anda untuk mengelola dan mengarahkan webhook tanpa pemrograman. Berikut ini adalah beberapa opsi populer:

  1. Zapier: Zapier menawarkan platform intuitif untuk mengintegrasikan webhook. Anda bisa mengonfigurasinya untuk menerima peristiwa webhook dan mengatur “Zaps” untuk meneruskan data ke beberapa titik akhir. Sangat ideal untuk pengguna non-teknis.
  2. Integromat (Make): Integromat, yang sekarang dikenal sebagai Make, menyediakan alur kerja yang fleksibel yang mencakup dukungan webhook. Anda dapat menerima data pada satu webhook dan membaginya di berbagai modul untuk dikirim ke berbagai titik akhir.
  3. IFTTT (Jika Ini Maka Itu): IFTTT adalah alat otomatisasi sederhana yang cocok untuk operasi webhook dasar. Anda dapat mengatur pemicu dan tindakan untuk menerima webhook dan meneruskan data ke beberapa layanan.
  4. Microsoft Power Automate: Power Automate menawarkan kemampuan otomatisasi dan integrasi tingkat perusahaan. Jika Anda menggunakan ekosistem Microsoft, ini bisa menjadi opsi yang tangguh untuk menangani dan mendistribusikan data webhook.
  5. Pipedream: Pipedream adalah alat lain yang sangat baik untuk pengembang dan non-pengembang, memungkinkan Anda untuk mengelola webhook, mentransformasi data, dan merutekannya ke berbagai layanan.
  6. Pabbly Connect: Pabbly Connect adalah alat otomatisasi yang tangguh dan mudah digunakan yang memungkinkan Anda untuk mengelola dan meneruskan webhook dengan mudah. Dengan antarmuka yang ramah pengguna, Pabbly Connect memungkinkan pengguna mengatur alur kerja untuk merutekan data ke beberapa titik akhir dengan mulus, menjadikannya pilihan yang baik untuk non-programmer yang ingin merampingkan aliran data webhook.
  7. Terintegrasi: Integrately adalah alat otomatisasi yang sederhana namun efektif yang memungkinkan Anda menghubungkan webhook di berbagai platform dengan cepat. Dengan opsi otomatisasi yang sudah dibuat sebelumnya, Integrately memungkinkan pengguna untuk menyiapkan alur kerja tanpa konfigurasi yang ekstensif, sehingga ideal untuk merutekan data webhook di berbagai titik akhir dengan upaya minimal.

Masing-masing alat ini menyediakan antarmuka langkah demi langkah untuk menangani data webhook, sehingga mudah untuk mengirim data ke beberapa titik akhir dengan konfigurasi minimal.

Kesimpulan: Skrip PHP ini secara efektif menerima data webhook dan meneruskannya ke beberapa titik akhir, menghindari batasan titik akhir tunggal. Skrip ini mencatat data untuk referensi, memastikan Anda tidak kehilangan informasi meskipun satu titik akhir gagal. Bagi mereka yang memilih untuk tidak membuat kode, alat otomatisasi seperti Zapier, Make, dan IFTTT menawarkan alternatif praktis, yang memungkinkan Anda untuk mengalihkan webhook dengan mudah tanpa keahlian pemrograman.