Mengendalikan Data Webhook dalam PHP dan Mengubah Hala ke Berbilang Titik Akhir

pengenalan:

Webhooks adalah penting untuk menyepadukan perkhidmatan yang berbeza, membolehkan komunikasi masa nyata antara mereka. Mereka sering dicetuskan oleh peristiwa dalam satu sistem, menghantar data berstruktur ke titik akhir yang lain. Walau bagaimanapun, sesetengah sistem mengehadkan sokongan webhook kepada satu titik akhir. Dalam artikel ini, kita akan membincangkan cara mengendalikan data webhook dalam PHP, menyimpannya secara setempat, dan kemudian memajukannya ke berbilang titik akhir. Selain itu, kami akan meneroka pilihan bukan program menggunakan alat automasi untuk mencapai matlamat yang sama.

Panduan Langkah demi Langkah untuk Menerima dan Mengalihkan Webhook dalam PHP

Menerima Data Webhook

Untuk menangkap data daripada webhook, gunakan PHPfile_get_contents() berfungsi untuk membaca badan permintaan. Contoh ini menganggap data JSON, yang biasa digunakan dalam webhooks. Coretan kod di bawah menunjukkan cara menerima dan log 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 menggunakanfile_get_contents("php://input") untuk menangkap data yang diterima daripada webhook.
  • Log Data : Langkah ini adalah pilihan dan log data ke dalam fail (log.txt ) untuk pengesahan dan penyahpepijatan.
  • Titik akhir : Tentukan URL tempat data akan dimajukan.
  • Fungsi Pemajuan :forwardWebhook() adalah fungsi yang menggunakancURL untuk menghantar data masukPOST format kepada setiap titik akhir yang ditentukan.
  • Menghantar Data : Theforeach gelung menghantar data ke setiap titik akhir webhook dalam senarai yang ditentukan.

Menguji dan Memantau Skrip

Untuk memastikan skrip anda berfungsi seperti yang diharapkan, uji dengan pelbagai permintaan webhook. Sahkan setiap titik akhir menerima data dengan betul. Anda boleh menelitilog.txt fail untuk mengesahkan data diterima dan disimpan dengan betul sebelum dihantar semula.

Penyelesaian Alternatif: Menggunakan Alat Automasi

Jika anda lebih suka pendekatan tanpa kod, beberapa platform automasi membenarkan anda mengurus dan mengubah hala webhook tanpa pengaturcaraan. Berikut ialah beberapa pilihan popular:

  1. Zapier : Zapier menawarkan platform intuitif untuk menyepadukan webhooks. Anda boleh mengkonfigurasinya untuk menerima acara webhook dan menyediakan “Zaps” untuk memajukan data ke berbilang titik akhir. Ia sesuai untuk pengguna bukan teknikal.
  2. Integromat (Make) : Integromat, kini dikenali sebagai Make, menyediakan aliran kerja fleksibel yang termasuk sokongan webhook. Anda boleh menerima data pada satu webhook dan membahagikannya merentas modul yang berbeza untuk dihantar ke pelbagai titik akhir.
  3. IFTTT (If This Then That) : IFTTT ialah alat automasi ringkas yang sesuai untuk operasi webhook asas. Anda boleh menyediakan pencetus dan tindakan untuk menerima webhook dan menghantar data kepada berbilang perkhidmatan.
  4. Microsoft Power Automate : Power Automate menawarkan automasi peringkat perusahaan dan keupayaan penyepaduan. Jika anda menggunakan ekosistem Microsoft, ini boleh menjadi pilihan yang mantap untuk mengendalikan dan mengedarkan data webhook.
  5. Pipedream : Pipedream ialah satu lagi alat yang sangat baik untuk pembangun dan bukan pembangun, membolehkan anda mengurus webhooks, mengubah data dan menghalakannya ke perkhidmatan yang berbeza.
  6. Pabbly Connect : Pabbly Connect ialah alat automasi yang berkuasa namun mudah yang membolehkan anda mengurus dan memajukan webhook dengan mudah. Dengan antara muka yang mesra pengguna, Pabbly Connect membolehkan pengguna menyediakan aliran kerja untuk menghalakan data ke berbilang titik akhir dengan lancar, menjadikannya pilihan yang baik untuk bukan pengaturcara yang ingin memperkemas aliran data webhook.
  7. Integrately : Integrately ialah alat automasi yang mudah tetapi berkesan yang membolehkan anda menyambungkan webhooks merentas berbilang platform dengan cepat. Dengan pilihan automasi pra-bina, Bersepadu membolehkan pengguna menyediakan aliran kerja tanpa konfigurasi yang luas, menjadikannya ideal untuk menghala data webhook merentasi berbilang titik akhir dengan usaha yang minimum.

Setiap alat ini menyediakan antara muka langkah demi langkah untuk mengendalikan data webhook, menjadikannya mudah untuk menghantar data ke berbilang titik akhir dengan konfigurasi minimum.

Kesimpulan: Skrip PHP ini menerima data webhook dengan berkesan dan memajukannya ke berbilang titik akhir, mengelakkan pengehadan titik akhir tunggal. Ia log data untuk rujukan, memastikan anda tidak kehilangan maklumat walaupun satu titik akhir gagal. Bagi mereka yang memilih untuk tidak menggunakan kod, alat automasi seperti Zapier, Make dan IFTTT menawarkan alternatif praktikal, membolehkan anda mengubah hala webhook dengan mudah tanpa kemahiran pengaturcaraan.