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
evalor
, 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
evalor
, 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
evalor
. - 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.