DeHubAbrir DeHub

DeHub › Documentación

Webhooks y API de notificaciones de DeHub

Tu servidor y DeHub se hablan en ambos sentidos. DeHub envía eventos firmados a tu webhook, y tu servidor envía notificaciones a quienes añadieron tu app.

Recibir eventos

Pon webhookUrl en tu manifiesto. DeHub envía un POST con este cuerpo:

{ "event": "app_added", "token": "eyJhbGciOiJFUzI1NiIs…" }
EventoCuándo
app_addedAlguien añadió tu app. Ya puede recibir tus notificaciones.
app_removedAlguien quitó tu app. Deja de notificarle.
paymentAlguien pagó a tu app con dehub.actions.pay(). El token añade amount, chainId, txHash y el memo.
tipOpcional. La cartera propietaria recibió una propina. Añade actor, amount, currency y el postId cuando la propina fue en una publicación.
followOpcional. Alguien siguió a la cartera propietaria. Añade actor.
mentionOpcional. Alguien mencionó a la cartera propietaria. Añade actor y el postId.
pingUna prueba enviada desde el botón Webhook en dehub.io/apps/dev.

tip, follow y el mention se refieren a la cartera propietaria de tu app, así que sub es esa cartera. Indica los que quieras en tu manifiesto y envíalo de nuevo:

"webhookUrl": "https://tipjar.example.com/api/dehub-webhook",
"webhookEvents": ["tip", "follow", "mention"]

token es un JWT firmado con typ: "event", el event nombre del evento, sub (la billetera del usuario) y aud (tu dominio). Verifícalo con las mismas claves públicas que los tokens de inicio de sesión, e ignora cualquier cuerpo cuyo token no se verifique. Responde en 5 segundos con un 2xx. Un error de red o un 5xx se reintenta una vez a los 3 segundos. Cada intento aparece en Webhook en dehub.io/apps/dev. Aun así, toma dehub.context's client.added como fuente de verdad cuando alguien abre tu app.

Enviar notificaciones

Crea una clave de notificaciones en dehub.io/apps/dev. Solo se muestra una vez; DeHub guarda solo un hash, así que una clave perdida se reemplaza, no se recupera.

curl -X POST https://aigxuutjaqsywioxjefr.supabase.co/functions/v1/miniapp-notify \
  -H 'Authorization: Bearer dhmk_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "notificationId": "turn-42",
    "title": "Your turn",
    "body": "Sam played a move. Tap to answer.",
    "targetUrl": "https://chess.example.com/game/42",
    "wallets": ["0xabc…"]
  }'
CampoReglas
notificationIdObligatorio. Hasta 128 caracteres. El mismo id llega a una persona como máximo una vez cada 24 horas.
titleObligatorio. Hasta 32 caracteres.
bodyHasta 128 caracteres.
targetUrlUn enlace https en el dominio de tu app, que se abre al tocar la notificación.
walletsA quién notificar. Si lo omites, se notifica a todos los que añadieron tu app (hasta 1.000 por llamada).

La respuesta indica a quién se envió y por qué se omitió a alguien: { sent, sentTo, skipped: { duplicate, rateLimited, notAdded } }. Cada persona recibe como máximo una notificación cada 30 segundos y diez al día de tu app, y solo si la añadió y dejó activadas sus notificaciones.

Recibos de pago

dehub.actions.pay() se resuelve solo después de que DeHub compruebe la transferencia en cadena y entrega a tu app un recibo firmado para verificar en tu servidor. El payment webhook es una segunda copia para tu servidor, enviada en segundo plano. Consulta Pagos.

Blog de DeHub · Inicio de dehub.io