{"id":5747,"date":"2024-11-05T11:36:22","date_gmt":"2024-11-05T11:36:22","guid":{"rendered":"https:\/\/blog.ultramsg.com\/manipulacao-de-dados-de-webhook-em-php-e-redirecionamento-para-varios-pontos-de-extremidade\/"},"modified":"2024-11-05T11:36:23","modified_gmt":"2024-11-05T11:36:23","slug":"manipulacao-de-dados-de-webhook-em-php-e-redirecionamento-para-varios-pontos-de-extremidade","status":"publish","type":"post","link":"https:\/\/blog.ultramsg.com\/pt-br\/manipulacao-de-dados-de-webhook-em-php-e-redirecionamento-para-varios-pontos-de-extremidade\/","title":{"rendered":"Manipula\u00e7\u00e3o de dados de webhook em PHP e redirecionamento para v\u00e1rios pontos de extremidade"},"content":{"rendered":"\n<p><strong>Introdu\u00e7\u00e3o:<\/strong> <\/p>\n\n<p>Os webhooks s\u00e3o essenciais para a integra\u00e7\u00e3o de diferentes servi\u00e7os, permitindo a comunica\u00e7\u00e3o em tempo real entre eles. Eles geralmente s\u00e3o acionados por eventos em um sistema, enviando dados estruturados para outro endpoint. No entanto, alguns sistemas limitam o suporte a webhooks a um \u00fanico endpoint. Neste artigo, discutiremos como lidar com dados de webhook no PHP, salv\u00e1-los localmente e encaminh\u00e1-los a v\u00e1rios endpoints. Al\u00e9m disso, exploraremos op\u00e7\u00f5es n\u00e3o program\u00e1ticas usando ferramentas de automa\u00e7\u00e3o para atingir o mesmo objetivo.    <\/p>\n\n<p><strong>Guia passo a passo para receber e redirecionar webhooks em PHP<\/strong><\/p>\n\n<h3 class=\"wp-block-heading\">Recebimento de dados de webhook<\/h3>\n\n<p>Para capturar dados de um webhook, use a fun\u00e7\u00e3o <code>file_get_contents()<\/code> do PHP para ler o corpo da solicita\u00e7\u00e3o. Este exemplo pressup\u00f5e dados JSON, comumente usados em webhooks. O trecho de c\u00f3digo abaixo demonstra como receber e registrar os dados do 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>Explica\u00e7\u00e3o:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Recebendo os dados<\/strong>: Usamos o site <code>file_get_contents(\"php:\/\/input\")<\/code> para capturar os dados recebidos do webhook.<\/li>\n\n\n\n<li><strong>Registro de dados<\/strong>: Esta etapa \u00e9 opcional e registra os dados em um arquivo (<code>log.txt<\/code>) para confirma\u00e7\u00e3o e depura\u00e7\u00e3o.<\/li>\n\n\n\n<li><strong>Pontos de extremidade<\/strong>: Defina os URLs para os quais os dados ser\u00e3o encaminhados.<\/li>\n\n\n\n<li><strong>Fun\u00e7\u00e3o de encaminhamento<\/strong>: <code>forwardWebhook()<\/code> \u00e9 uma fun\u00e7\u00e3o que usa <code>cURL<\/code> para enviar os dados no formato <code>POST<\/code> para cada ponto de extremidade especificado.<\/li>\n\n\n\n<li><strong>Envio de dados<\/strong>: O loop <code>foreach<\/code> envia os dados para cada endpoint de webhook na lista definida.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">  Teste e monitoramento do script<\/h2>\n\n<p>Para garantir que seu script funcione conforme o esperado, teste-o com v\u00e1rias solicita\u00e7\u00f5es de webhook. Confirme se cada endpoint recebe os dados corretamente. Voc\u00ea pode examinar o arquivo <code>log.txt<\/code> para verificar se os dados foram recebidos e armazenados corretamente antes de serem encaminhados.  <\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Solu\u00e7\u00f5es alternativas: Uso de ferramentas de automa\u00e7\u00e3o<\/strong><\/h2>\n\n<p>Se voc\u00ea preferir uma abordagem sem c\u00f3digo, v\u00e1rias plataformas de automa\u00e7\u00e3o permitem que voc\u00ea gerencie e redirecione webhooks sem programa\u00e7\u00e3o. Aqui est\u00e3o algumas op\u00e7\u00f5es populares: <\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Zapier<\/strong>: O Zapier oferece uma plataforma intuitiva para a integra\u00e7\u00e3o de webhooks. Voc\u00ea pode configur\u00e1-lo para receber um evento de webhook e definir &#8220;Zaps&#8221; para encaminhar os dados a v\u00e1rios pontos de extremidade. \u00c9 ideal para usu\u00e1rios n\u00e3o t\u00e9cnicos.  <\/li>\n\n\n\n<li><strong>Integromat (Make)<\/strong>: O Integromat, agora conhecido como Make, oferece fluxos de trabalho flex\u00edveis que incluem suporte a webhook. Voc\u00ea pode receber dados em um \u00fanico webhook e dividi-los em diferentes m\u00f3dulos para enviar a v\u00e1rios pontos de extremidade. <\/li>\n\n\n\n<li><strong>IFTTT (If This Then That)<\/strong>: O IFTTT \u00e9 uma ferramenta de automa\u00e7\u00e3o simples, adequada para opera\u00e7\u00f5es b\u00e1sicas de webhook. Voc\u00ea pode configurar acionadores e a\u00e7\u00f5es para receber um webhook e passar dados para v\u00e1rios servi\u00e7os. <\/li>\n\n\n\n<li><strong>Microsoft Power Automate<\/strong>: O Power Automate oferece recursos de automa\u00e7\u00e3o e integra\u00e7\u00e3o em n\u00edvel empresarial. Se voc\u00ea estiver usando o ecossistema da Microsoft, essa pode ser uma op\u00e7\u00e3o robusta para manipular e distribuir dados de 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>: O Pipedream \u00e9 outra excelente ferramenta para desenvolvedores e n\u00e3o desenvolvedores, permitindo que voc\u00ea gerencie webhooks, transforme dados e os encaminhe para diferentes servi\u00e7os.<\/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>: O Pabbly Connect \u00e9 uma ferramenta de automa\u00e7\u00e3o poderosa, por\u00e9m simples, que permite que voc\u00ea gerencie e encaminhe webhooks facilmente. Com uma interface amig\u00e1vel, o Pabbly Connect permite que os usu\u00e1rios configurem fluxos de trabalho para encaminhar dados para v\u00e1rios pontos de extremidade sem problemas, o que o torna uma boa op\u00e7\u00e3o para quem n\u00e3o \u00e9 programador e deseja simplificar o fluxo de dados do 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\">Integradamente<\/a><\/strong>: O Integrately \u00e9 uma ferramenta de automa\u00e7\u00e3o simples, por\u00e9m eficaz, que permite que voc\u00ea conecte webhooks em v\u00e1rias plataformas rapidamente. Com op\u00e7\u00f5es de automa\u00e7\u00e3o pr\u00e9-constru\u00eddas, o Integrately permite que os usu\u00e1rios definam fluxos de trabalho sem configura\u00e7\u00f5es extensas, o que o torna ideal para rotear dados de webhooks em v\u00e1rios pontos de extremidade com o m\u00ednimo de esfor\u00e7o. <\/li>\n<\/ol>\n\n<p>Cada uma dessas ferramentas fornece interfaces passo a passo para lidar com dados de webhook, facilitando o envio de dados para v\u00e1rios pontos de extremidade com configura\u00e7\u00e3o m\u00ednima.<\/p>\n\n<p><strong>Conclus\u00e3o:<\/strong> Esse script PHP recebe efetivamente dados de webhook e os encaminha a v\u00e1rios endpoints, contornando a limita\u00e7\u00e3o de um \u00fanico endpoint. Ele registra os dados para refer\u00eancia, garantindo que voc\u00ea n\u00e3o perca informa\u00e7\u00f5es mesmo que um endpoint falhe. Para aqueles que preferem n\u00e3o programar, ferramentas de automa\u00e7\u00e3o como Zapier, Make e IFTTT oferecem alternativas pr\u00e1ticas, permitindo que voc\u00ea redirecione webhooks sem esfor\u00e7o e sem habilidades de programa\u00e7\u00e3o.  <\/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>Introdu\u00e7\u00e3o: Os webhooks s\u00e3o essenciais para a integra\u00e7\u00e3o de diferentes servi\u00e7os, permitindo a comunica\u00e7\u00e3o em &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Manipula\u00e7\u00e3o de dados de webhook em PHP e redirecionamento para v\u00e1rios pontos de extremidade\" class=\"read-more button\" href=\"https:\/\/blog.ultramsg.com\/pt-br\/manipulacao-de-dados-de-webhook-em-php-e-redirecionamento-para-varios-pontos-de-extremidade\/#more-5747\" aria-label=\"Read more about Manipula\u00e7\u00e3o de dados de webhook em PHP e redirecionamento para v\u00e1rios pontos de extremidade\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":5728,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[111,325],"tags":[112,115,117,125],"class_list":["post-5747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-do-whatsapp","category-webhook-pt-br","tag-api-do-whatsapp","tag-php-pt-br","tag-tutoriais","tag-webhook-pt-br","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\/pt-br\/wp-json\/wp\/v2\/posts\/5747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/comments?post=5747"}],"version-history":[{"count":1,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/posts\/5747\/revisions"}],"predecessor-version":[{"id":5748,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/posts\/5747\/revisions\/5748"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/media\/5728"}],"wp:attachment":[{"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/media?parent=5747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/categories?post=5747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ultramsg.com\/pt-br\/wp-json\/wp\/v2\/tags?post=5747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}