{"id":5743,"date":"2024-11-05T11:35:56","date_gmt":"2024-11-05T11:35:56","guid":{"rendered":"https:\/\/blog.ultramsg.com\/gestire-i-dati-dei-webhook-in-php-e-reindirizzare-a-piu-endpoint\/"},"modified":"2024-11-05T11:35:56","modified_gmt":"2024-11-05T11:35:56","slug":"gestire-i-dati-dei-webhook-in-php-e-reindirizzare-a-piu-endpoint","status":"publish","type":"post","link":"https:\/\/blog.ultramsg.com\/it\/gestire-i-dati-dei-webhook-in-php-e-reindirizzare-a-piu-endpoint\/","title":{"rendered":"Gestire i dati dei webhook in PHP e reindirizzare a pi\u00f9 endpoint"},"content":{"rendered":"\n<p><strong>Introduzione:<\/strong> <\/p>\n\n<p>I webhook sono fondamentali per integrare diversi servizi, consentendo la comunicazione in tempo reale tra di essi. Spesso vengono attivati da eventi in un sistema, inviando dati strutturati a un altro endpoint. Tuttavia, alcuni sistemi limitano il supporto dei webhook a un solo endpoint. In questo articolo parleremo di come gestire i dati dei webhook in PHP, salvarli localmente e poi inoltrarli a pi\u00f9 endpoint. Inoltre, esploreremo le opzioni non programmatiche utilizzando strumenti di automazione per raggiungere lo stesso obiettivo.    <\/p>\n\n<p><strong>Guida passo-passo alla ricezione e al reindirizzamento dei webhook in PHP<\/strong><\/p>\n\n<h3 class=\"wp-block-heading\">Ricevere i dati di Webhook<\/h3>\n\n<p>Per acquisire i dati da un webhook, usa la funzione <code>file_get_contents()<\/code> di PHP per leggere il corpo della richiesta. In questo esempio si ipotizzano dati JSON, comunemente utilizzati nei webhook. Il frammento di codice che segue mostra come ricevere e registrare i dati del webhook.  <\/p>\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">&lt;?php\n\/\/ Capture the raw webhook data\n$data = file_get_contents(\"php:\/\/input\");\n$event = json_decode($data, true);\n\n\/\/ Log the event data (Optional)\nif (isset($event)) {\n    $file = 'log.txt';  \n    $log_data = json_encode($event) . \"\\n\";  \n    file_put_contents($file, $log_data, FILE_APPEND | LOCK_EX);\n}\n\n\/\/ Define the endpoints where data will be sent\n$endpoints = &#91;\n    \"https:\/\/example1.com\/webhook-endpoint\", \/\/ First endpoint\n    \"https:\/\/example2.com\/webhook-endpoint\"  \/\/ Second endpoint\n];\n\n\/\/ Function to send webhook data to another endpoint\nfunction forwardWebhook($url, $data) {\n    $ch = curl_init($url);\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n    curl_setopt($ch, CURLOPT_POST, true);\n    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\n    curl_setopt($ch, CURLOPT_HTTPHEADER, &#91;\n        'Content-Type: application\/json',\n        'Content-Length: ' . strlen($data)\n    ]);\n    $response = curl_exec($ch);\n    curl_close($ch);\n\n    return $response;\n}\n\n\/\/ Send data to each endpoint in the list\nforeach ($endpoints as $endpoint) {\n    forwardWebhook($endpoint, json_encode($event));\n}\n?><\/code><\/code><\/pre>\n\n<p><strong>Spiegazione:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Ricezione dei dati<\/strong>: Utilizziamo <code>file_get_contents(\"php:\/\/input\")<\/code> per acquisire i dati ricevuti dal webhook.<\/li>\n\n\n\n<li><strong>Registrazione dei dati<\/strong>: Questa fase \u00e8 facoltativa e registra i dati in un file (<code>log.txt<\/code>) per la conferma e il debug.<\/li>\n\n\n\n<li><strong>Endpoint<\/strong>: Definisci gli URL dove verranno inoltrati i dati.<\/li>\n\n\n\n<li><strong>Funzione di inoltro<\/strong>: <code>forwardWebhook()<\/code> \u00e8 una funzione che utilizza <code>cURL<\/code> per inviare i dati in formato <code>POST<\/code> a ciascun endpoint specificato.<\/li>\n\n\n\n<li><strong>Invio dei dati<\/strong>: Il ciclo <code>foreach<\/code> invia i dati a ciascun endpoint webhook dell&#8217;elenco definito.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">  Testare e monitorare lo script<\/h2>\n\n<p>Per assicurarti che il tuo script funzioni come previsto, testalo con diverse richieste di webhook. Verifica che ogni endpoint riceva i dati correttamente. Puoi esaminare il file <code>log.txt<\/code> per verificare che i dati siano stati ricevuti e memorizzati correttamente prima dell&#8217;inoltro.  <\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Soluzioni alternative: Utilizzare gli strumenti di automazione<\/strong><\/h2>\n\n<p>Se preferisci un approccio senza codice, molte piattaforme di automazione ti permettono di gestire e reindirizzare i webhook senza programmazione. Ecco alcune opzioni popolari: <\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Zapier<\/strong>: Zapier offre una piattaforma intuitiva per integrare i webhook. Puoi configurarlo per ricevere un evento webhook e impostare &#8220;Zaps&#8221; per inoltrare i dati a pi\u00f9 endpoint. \u00c8 ideale per gli utenti non tecnici.  <\/li>\n\n\n\n<li><strong>Integromat (Make)<\/strong>: Integromat, ora noto come Make, offre flussi di lavoro flessibili che includono il supporto di webhook. Puoi ricevere dati su un singolo webhook e suddividerli in diversi moduli per inviarli a vari endpoint. <\/li>\n\n\n\n<li><strong>IFTTT (If This Then That)<\/strong>: IFTTT \u00e8 un semplice strumento di automazione adatto alle operazioni di base con i webhook. Puoi impostare trigger e azioni per ricevere un webhook e passare i dati a pi\u00f9 servizi. <\/li>\n\n\n\n<li><strong>Microsoft Power Automate<\/strong>: Power Automate offre funzionalit\u00e0 di automazione e integrazione di livello aziendale. Se utilizzi l&#8217;ecosistema Microsoft, questa potrebbe essere una valida opzione per gestire e distribuire i dati dei webhook. <\/li>\n\n\n\n<li><strong><a href=\"https:\/\/pipedream.com\/apps\/ultramsg\/\" data-type=\"link\" data-id=\"https:\/\/pipedream.com\/apps\/ultramsg\/\" target=\"_blank\" rel=\"noopener\">Pipedream<\/a><\/strong>: Pipedream \u00e8 un altro strumento eccellente per sviluppatori e non, che ti permette di gestire webhook, trasformare i dati e indirizzarli a diversi servizi.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.pabbly.com\/connect\/integrations\/ultramsg\/\" data-type=\"link\" data-id=\"https:\/\/www.pabbly.com\/connect\/integrations\/ultramsg\/\" target=\"_blank\" rel=\"noopener\">Pabbly Connect<\/a><\/strong>: Pabbly Connect \u00e8 uno strumento di automazione potente ma semplice che ti permette di gestire e inoltrare facilmente i webhook. Con un&#8217;interfaccia facile da usare, Pabbly Connect consente agli utenti di impostare flussi di lavoro per instradare i dati a pi\u00f9 endpoint senza soluzione di continuit\u00e0, rendendolo una buona opzione per i non programmatori che vogliono ottimizzare il flusso di dati dei webhook. <\/li>\n\n\n\n<li><strong><a href=\"https:\/\/integrately.com\/integrations\/ultramsg\" data-type=\"link\" data-id=\"https:\/\/integrately.com\/integrations\/ultramsg\" target=\"_blank\" rel=\"noopener\">Integralmente<\/a><\/strong>: Integrately \u00e8 uno strumento di automazione semplice ma efficace che ti permette di collegare rapidamente i webhook tra pi\u00f9 piattaforme. Grazie alle opzioni di automazione precostituite, Integrately consente agli utenti di impostare i flussi di lavoro senza una configurazione approfondita, rendendolo ideale per instradare i dati dei webhook su pi\u00f9 endpoint con il minimo sforzo. <\/li>\n<\/ol>\n\n<p>Ognuno di questi strumenti fornisce interfacce passo-passo per gestire i dati webhook, rendendo semplice l&#8217;invio di dati a pi\u00f9 endpoint con una configurazione minima.<\/p>\n\n<p><strong>Conclusione:<\/strong> Questo script PHP riceve efficacemente i dati dei webhook e li inoltra a pi\u00f9 endpoint, aggirando la limitazione del singolo endpoint. Registra i dati come riferimento, assicurandoti di non perdere informazioni anche se un endpoint si guasta. Per coloro che preferiscono non utilizzare il codice, gli strumenti di automazione come Zapier, Make e IFTTT offrono alternative pratiche, consentendoti di reindirizzare i webhook senza sforzo e senza avere competenze di programmazione.  <\/p>\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\"> \n<iframe loading=\"lazy\" title=\"Receive WhatsApp messages using PHP | WhatsApp api Webhook\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/TfQOclLMIng?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n <\/div><\/figure>\n\n<p><br\/><br\/><\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduzione: I webhook sono fondamentali per integrare diversi servizi, consentendo la comunicazione in tempo reale &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Gestire i dati dei webhook in PHP e reindirizzare a pi\u00f9 endpoint\" class=\"read-more button\" href=\"https:\/\/blog.ultramsg.com\/it\/gestire-i-dati-dei-webhook-in-php-e-reindirizzare-a-piu-endpoint\/#more-5743\" aria-label=\"Per saperne di pi\u00f9 su Gestire i dati dei webhook in PHP e reindirizzare a pi\u00f9 endpoint\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":5726,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[274,323],"tags":[275,279,277,278],"class_list":["post-5743","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-di-whatsapp","category-webhook-it","tag-api-di-whatsapp","tag-php-it","tag-tutorial-it","tag-webhook-it","infinite-scroll-item","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-25","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/posts\/5743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/comments?post=5743"}],"version-history":[{"count":1,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/posts\/5743\/revisions"}],"predecessor-version":[{"id":5744,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/posts\/5743\/revisions\/5744"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/media\/5726"}],"wp:attachment":[{"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/media?parent=5743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/categories?post=5743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/it\/wp-json\/wp\/v2\/tags?post=5743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}