Descripción general
Entrega en tiempo real
Recibe eventos al instante cuando ocurren
Basado en push
Los datos se envían directamente a tu servidor — sin polling
Seguro
Validación CRC y verificación de firma
Confiable
Soporte de reintentos y recuperación
Productos que soportan webhooks
Estos son los productos que actualmente soportan la entrega de eventos vía webhook:Cómo funcionan los webhooks
- Ocurre un evento — Un usuario publica, envía un DM, es seguido, etc.
- X envía una solicitud POST — Payload JSON del evento enviado a tu URL de webhook registrada
- Procesas el evento — Tu servidor maneja los datos del evento
- Responde con 200 OK — Devuelve un estado 200 para confirmar la recepción
Requisitos del webhook
Endpoints
Todos los endpoints requieren autenticación con OAuth2 App Only Bearer Token.
Seguridad
Las APIs basadas en webhooks de X proporcionan dos métodos para confirmar la seguridad de tu servidor de webhook:- Challenge-Response Check (CRC) — X envía solicitudes GET periódicas a la URL de tu webhook. Respondes con un hash HMAC-SHA256 para demostrar que controlas el endpoint. Las verificaciones CRC ocurren en el registro inicial, cada hora y ante una revalidación manual.
-
Verificación de firma — Cada solicitud POST de X incluye una cabecera
x-twitter-webhooks-signature. Puedes verificar esta firma para confirmar que X es la fuente de los eventos entrantes.
Consulta los detalles completos de la implementación
Configuración de CRC paso a paso, ejemplos de código y verificación de firma
Validación de webhook
Se envía una verificación CRC a tu webhook en los siguientes casos:- Inmediatamente al crearse
- Ante una solicitud PUT explícita (
PUT /2/webhooks/{id}) - Periódicamente cada 30 minutos, pero solo si el webhook no ha sido validado con éxito en las últimas 24 horas
- Devuelve una respuesta inválida a una verificación CRC
- Devuelve un código de estado 2XX pero el
response_tokenes incorrecto - Devuelve un código de estado 3XX
- Provoca una excepción SSL
- Devuelve un código de estado 2XX pero el
- Experimenta errores transitorios persistentes de modo que no ha validado con éxito por más de 28 horas (incluye un período de gracia de 4 horas para problemas transitorios)
- Las siguientes respuestas se tratan como errores transitorios:
- Código de estado 4XX
- Código de estado 5XX
- Tiempo de espera de solicitud
- Canal cerrado
- Las siguientes respuestas se tratan como errores transitorios:
GET /2/webhooks o mediante la toolbox en el Developer Console.
Primeros pasos
Requisitos previos
- Una cuenta de desarrollador aprobada
- Un Project y App en el Developer Console
- Un endpoint HTTPS accesible públicamente
- El consumer secret de tu app (API secret key) para la validación CRC
Inicio rápido
Configura tu webhook de principio a fin
Filtered Stream Webhooks
Recibe Posts filtrados vía webhook
Account Activity API
Recibe eventos de cuenta vía webhook
Apps de ejemplo
Ejemplos de código funcionales