Webhooks: Enviando e Recebendo Dados com POST e GET

O que é um Webhook?

Webhooks são uma maneira simples e eficaz de notificar um sistema sobre eventos em tempo real. Em vez de o sistema precisar ficar pedindo por atualizações, o webhook envia automaticamente as informações assim que o evento acontece.

Neste post, vamos entender como criar um webhook usando POST e GET. Sem complicação, apenas o básico para você implementar facilmente!


Webhook com POST – Enviando Dados

Passo 1: Criando o Script para RECEBER o Webhook (Servidor)

Este script será responsável por receber os dados que o webhook envia via POST.

<?php
// Aqui vamos usar $_POST para pegar os dados recebidos via POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Verifica se existem dados no POST
    if (isset($_POST['evento']) && isset($_POST['valor'])) {
        echo "Evento: " . $_POST['evento'] . "<br>";
        echo "Valor: " . $_POST['valor'];
    } else {
        echo "Dados não recebidos corretamente.";
    }
}
?>

O que está acontecendo aqui?

  • O script verifica se a requisição é do tipo POST.
  • Se o POST contiver os dados evento e valor, ele os exibe.
  • Caso contrário, ele mostra uma mensagem de erro.

Passo 2: Criando o Script para ENVIAR o Webhook (Cliente)

Agora, vamos criar um script que vai enviar os dados para o servidor via POST.

<?php
// Dados para enviar
$data = [
    'evento' => 'Compra Realizada',
    'valor' => 150.00
];

// URL do servidor que vai receber o webhook
$url = 'http://seusite.com/webhook.php'; // Coloque a URL do seu servidor

// Usando cURL para enviar os dados para o servidor
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Dados a serem enviados
curl_exec($ch);  // Executa a requisição
curl_close($ch); // Fecha a conexão
?>

O que está acontecendo aqui?

  • Criamos os dados que queremos enviar.
  • Usamos cURL para fazer uma requisição POST e enviar esses dados.
  • A função curl_exec envia a requisição para o servidor.

Webhook com GET – Enviando Dados na URL

Passo 1: Criando o Script para RECEBER o Webhook via GET

Agora, vamos fazer um script que vai receber os dados via GET, ou seja, os dados serão passados pela URL.

<?php
// Pegando os dados via GET
if (isset($_GET['evento']) && isset($_GET['valor'])) {
    echo "Evento: " . $_GET['evento'] . "<br>";
    echo "Valor: " . $_GET['valor'];
} else {
    echo "Dados não recebidos corretamente.";
}
?>

O que está acontecendo aqui?

  • O script usa $_GET para capturar os dados passados pela URL.
  • Exibe os dados evento e valor, se eles estiverem presentes.

Passo 2: Criando o Script para ENVIAR o Webhook via GET

Por fim, vamos criar o script que envia os dados pela URL usando GET.

<?php
// Dados para enviar
$evento = 'Compra Realizada';
$valor = 150.00;

// URL do servidor que vai receber o webhook
$url = "http://seusite.com/webhook.php?evento=$evento&valor=$valor";

// Usando cURL para enviar a requisição GET
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);  // Executa a requisição
curl_close($ch); // Fecha a conexão
?>

O que está acontecendo aqui?

  • Passamos os dados como parâmetros na URL, usando evento e valor.
  • Usamos cURL para enviar a requisição GET ao servidor.

Resumo

  • POST: Ideal para enviar dados no corpo da requisição (geralmente usado para enviar informações mais sensíveis ou maiores).
  • GET: Envia dados na URL (ideal para dados simples ou quando não há necessidade de esconder as informações).

Esses são os conceitos básicos de como enviar e receber webhooks com POST e GET. A implementação é simples, e você pode adaptá-la facilmente para suas necessidades.

Rolar para cima