{"id":5751,"date":"2024-11-05T11:36:53","date_gmt":"2024-11-05T11:36:53","guid":{"rendered":"https:\/\/blog.ultramsg.com\/manejar-datos-de-webhook-en-php-y-redirigir-a-multiples-puntos-finales\/"},"modified":"2024-11-05T11:36:54","modified_gmt":"2024-11-05T11:36:54","slug":"manejar-datos-de-webhook-en-php-y-redirigir-a-multiples-puntos-finales","status":"publish","type":"post","link":"https:\/\/blog.ultramsg.com\/es\/manejar-datos-de-webhook-en-php-y-redirigir-a-multiples-puntos-finales\/","title":{"rendered":"Manejar datos de Webhook en PHP y redirigir a m\u00faltiples puntos finales"},"content":{"rendered":"\n<p><strong>Introducci\u00f3n:<\/strong> <\/p>\n\n<p>Los webhooks son cruciales para integrar diferentes servicios, permitiendo la comunicaci\u00f3n en tiempo real entre ellos. A menudo se activan por eventos en un sistema, enviando datos estructurados a otro punto final. Sin embargo, algunos sistemas limitan el soporte de webhooks a un \u00fanico punto final. En este art\u00edculo, veremos c\u00f3mo manejar datos de webhook en PHP, guardarlos localmente y reenviarlos a varios puntos finales. Adem\u00e1s, exploraremos opciones no program\u00e1ticas utilizando herramientas de automatizaci\u00f3n para lograr el mismo objetivo.    <\/p>\n\n<p><strong>Gu\u00eda paso a paso para recibir y redirigir Webhooks en PHP<\/strong><\/p>\n\n<h3 class=\"wp-block-heading\">Recibir datos de Webhook<\/h3>\n\n<p>Para capturar datos de un webhook, utiliza la funci\u00f3n <code>file_get_contents()<\/code> de PHP para leer el cuerpo de la petici\u00f3n. Este ejemplo asume datos JSON, utilizados habitualmente en los webhooks. El siguiente fragmento de c\u00f3digo muestra c\u00f3mo recibir y registrar los datos 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>Explicaci\u00f3n:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Recepci\u00f3n de<\/strong> los <strong>datos<\/strong>: Utilizamos <code>file_get_contents(\"php:\/\/input\")<\/code> para capturar los datos recibidos del webhook.<\/li>\n\n\n\n<li><strong>Registrar los datos<\/strong>: Este paso es opcional y registra los datos en un archivo (<code>log.txt<\/code>) para su confirmaci\u00f3n y depuraci\u00f3n.<\/li>\n\n\n\n<li><strong>Puntos finales<\/strong>: Define las URL a las que se reenviar\u00e1n los datos.<\/li>\n\n\n\n<li><strong>Funci\u00f3n de reenv\u00edo<\/strong>: <code>forwardWebhook()<\/code> es una funci\u00f3n que utiliza <code>cURL<\/code> para enviar los datos en formato <code>POST<\/code> a cada punto final especificado.<\/li>\n\n\n\n<li><strong>Env\u00edo de datos<\/strong>: El bucle <code>foreach<\/code> env\u00eda los datos a cada punto final de webhook de la lista definida.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">  Prueba y supervisi\u00f3n del script<\/h2>\n\n<p>Para asegurarte de que tu script funciona como esperas, pru\u00e9balo con varias peticiones de webhook. Confirma que cada punto final recibe los datos correctamente. Puedes examinar el archivo <code>log.txt<\/code> para verificar que los datos se reciben y almacenan correctamente antes de ser reenviados.  <\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Soluciones alternativas: Utilizar herramientas de automatizaci\u00f3n<\/strong><\/h2>\n\n<p>Si prefieres un enfoque sin c\u00f3digo, varias plataformas de automatizaci\u00f3n te permiten gestionar y redirigir webhooks sin necesidad de programar. Aqu\u00ed tienes algunas opciones populares: <\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Zapier<\/strong>: Zapier ofrece una plataforma intuitiva para integrar webhooks. Puedes configurarlo para recibir un evento webhook y configurar \u00abZaps\u00bb para reenviar los datos a m\u00faltiples puntos finales. Es ideal para usuarios no t\u00e9cnicos.  <\/li>\n\n\n\n<li><strong>Integromat (Make)<\/strong>: Integromat, ahora conocido como Make, proporciona flujos de trabajo flexibles que incluyen soporte para webhook. Puedes recibir datos en un \u00fanico webhook y dividirlos en distintos m\u00f3dulos para enviarlos a varios puntos finales. <\/li>\n\n\n\n<li><strong>IFTTT (Si esto, entonces aquello)<\/strong>: IFTTT es una sencilla herramienta de automatizaci\u00f3n adecuada para operaciones b\u00e1sicas de webhook. Puedes configurar desencadenantes y acciones para recibir un webhook y pasar datos a varios servicios. <\/li>\n\n\n\n<li><strong>Microsoft Power Automate<\/strong>: Power Automate ofrece capacidades de automatizaci\u00f3n e integraci\u00f3n a nivel empresarial. Si utilizas el ecosistema de Microsoft, \u00e9sta podr\u00eda ser una opci\u00f3n s\u00f3lida para gestionar y distribuir los datos de los webhooks. <\/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\">Sue\u00f1o en tuber\u00edas<\/a><\/strong>: Pipedream es otra herramienta excelente tanto para desarrolladores como para no desarrolladores, que te permite gestionar webhooks, transformar datos y dirigirlos a diferentes servicios.<\/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 Conectar<\/a><\/strong>: Pabbly Connect es una herramienta de automatizaci\u00f3n potente pero sencilla que te permite gestionar y reenviar webhooks f\u00e1cilmente. Con una interfaz f\u00e1cil de usar, Pabbly Connect permite a los usuarios configurar flujos de trabajo para enrutar datos a m\u00faltiples puntos finales sin problemas, por lo que es una buena opci\u00f3n para los no programadores que buscan agilizar el flujo de datos de los webhooks. <\/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\">Integramente<\/a><\/strong>: Integrately es una herramienta de automatizaci\u00f3n sencilla pero eficaz que te permite conectar webhooks a trav\u00e9s de m\u00faltiples plataformas r\u00e1pidamente. Con opciones de automatizaci\u00f3n preconfiguradas, Integrately permite a los usuarios establecer flujos de trabajo sin una configuraci\u00f3n exhaustiva, lo que la hace ideal para enrutar datos de webhooks a trav\u00e9s de m\u00faltiples puntos finales con el m\u00ednimo esfuerzo. <\/li>\n<\/ol>\n\n<p>Cada una de estas herramientas proporciona interfaces paso a paso para manejar datos de webhook, lo que facilita el env\u00edo de datos a m\u00faltiples puntos finales con una configuraci\u00f3n m\u00ednima.<\/p>\n\n<p><strong>Conclusi\u00f3n:<\/strong> Este script PHP recibe eficazmente los datos del webhook y los reenv\u00eda a m\u00faltiples puntos finales, eludiendo la limitaci\u00f3n del punto final \u00fanico. Registra los datos como referencia, asegurando que no pierdes informaci\u00f3n aunque falle un punto final. Para quienes prefieran no codificar, las herramientas de automatizaci\u00f3n como Zapier, Make e IFTTT ofrecen alternativas pr\u00e1cticas, que te permiten redirigir webhooks sin esfuerzo y sin conocimientos de programaci\u00f3n.  <\/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>Introducci\u00f3n: Los webhooks son cruciales para integrar diferentes servicios, permitiendo la comunicaci\u00f3n en tiempo real &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Manejar datos de Webhook en PHP y redirigir a m\u00faltiples puntos finales\" class=\"read-more button\" href=\"https:\/\/blog.ultramsg.com\/es\/manejar-datos-de-webhook-en-php-y-redirigir-a-multiples-puntos-finales\/#more-5751\" aria-label=\"Leer m\u00e1s sobre Manejar datos de Webhook en PHP y redirigir a m\u00faltiples puntos finales\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":5730,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57,327],"tags":[63,58,59,61],"class_list":["post-5751","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-whatsapp","category-webhook-es","tag-api-whatsapp","tag-php-es","tag-tutoriales","tag-webhook-es","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\/es\/wp-json\/wp\/v2\/posts\/5751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/comments?post=5751"}],"version-history":[{"count":1,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/posts\/5751\/revisions"}],"predecessor-version":[{"id":5752,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/posts\/5751\/revisions\/5752"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/media\/5730"}],"wp:attachment":[{"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/media?parent=5751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/categories?post=5751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/es\/wp-json\/wp\/v2\/tags?post=5751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}