Documentos
Webhooks
Introducción
Los webhooks son una función potente que permite a tu servidor escuchar eventos de tus dispositivos o de WhatsApp. Ayuda a automatizar tareas.
Esta función solo funciona para eventos entrantes como SMS, mensajes de WhatsApp, respuestas USSD y notificaciones de Android.
Casos de uso
Bot de respuesta automática para SMS y WhatsApp.
Guardar mensajes y chats en tu base de datos.
Guardar notificaciones en tu base de datos.
Guardar respuestas USSD en tu base de datos.
Enviar payloads a direcciones de correo electrónico.
Enviar un SMS o chat cuando recibas una notificación de Facebook.
Ejecutar acciones cuando se reciba una notificación de cualquier app.
Cómo funciona
Cuando se recibe un evento, el sistema lo envía a tu URL de webhook usando el método POST. Tu servidor puede manejar el payload como quieras.
Estructura del payload
Cada payload tiene un tipo y datos. Solo necesitas comprobar el tipo y procesar los datos.
SMS
JSON Payload
[
"type" => "sms",
"data" => [
"id" => 2,
"rid" => 10593,
"sim" => 1,
"device" => "UUID-DEVICE-ID",
"phone" => "+639760713666",
"message" => "Hello World!",
"timestamp" => 1645684231
]
]
WhatsApp
JSON Payload
[
"type" => "whatsapp",
"data" => [
"id" => 2,
"wid" => "+639760713666",
"phone" => "+639760666713",
"message" => "Hello World!",
"attachment" => "http://imageurl.com/image.jpg",
"timestamp" => 1645684231
]
]
USSD
JSON Payload
[
"type" => "ussd",
"data" => [
"id" => 98,
"sim" => 1,
"device" => "UUID-DEVICE-ID",
"code" => "*143#",
"response" => "Balance: 10.00",
"timestamp" => 1645684231
]
]
Notification
JSON Payload
[
"type" => "notification",
"data" => [
"id" => 77,
"device" => "UUID-DEVICE-ID",
"package" => "com.facebook.katana",
"title" => "Notification Title",
"content" => "Notification Content",
"timestamp" => 1645684231
]
]
Ejemplo de código
<?php
$request = $_REQUEST;
$secret = "YOUR_WEBHOOK_SECRET";
// Check webhook secret
if (isset($request["secret"]) && $request["secret"] == $secret):
$payloadType = $request["type"];
$payloadData = $request["data"];
// Handle the payload
// Example: save to database or trigger an action
error_log("Webhook received: " . $payloadType);
else:
http_response_code(401);
exit("Invalid secret");
endif;