DeHubOuvrir DeHub

DeHub › Documentation

Webhooks et API de notifications DeHub

Votre serveur et DeHub dialoguent dans les deux sens. DeHub envoie des événements signés à votre webhook, et votre serveur envoie des notifications aux personnes qui ont ajouté votre app.

Recevoir des événements

Réglez webhookUrl dans votre manifeste. DeHub envoie un POST avec ce corps :

{ "event": "app_added", "token": "eyJhbGciOiJFUzI1NiIs…" }
ÉvénementQuand
app_addedQuelqu’un a ajouté votre app. Cette personne peut maintenant recevoir vos notifications.
app_removedQuelqu’un a retiré votre app. Arrêtez de lui envoyer des notifications.
paymentQuelqu'un a payé votre app avec dehub.actions.pay(). Le jeton ajoute amount, chainId, txHash et le memo.
tipSur demande. Le portefeuille propriétaire a reçu un pourboire. Ajoute actor, amount, currency et le postId quand le pourboire portait sur une publication.
followSur demande. Quelqu'un a suivi le portefeuille propriétaire. Ajoute actor.
mentionSur demande. Quelqu'un a mentionné le portefeuille propriétaire. Ajoute actor et le postId.
pingUn test envoyé depuis le bouton Webhook sur dehub.io/apps/dev.

tip, follow et le mention concernent le portefeuille propriétaire de votre app, donc sub est ce portefeuille. Indiquez ceux que vous voulez dans votre manifeste, puis soumettez-le à nouveau :

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

token est un JWT signé avec typ: "event", le nom event de l’événement, sub (le portefeuille de l’utilisateur) et aud (votre domaine). Vérifiez-le avec les mêmes clés publiques que les jetons de connexion, et ignorez tout corps dont le jeton n'est pas vérifié. Répondez en 5 secondes avec un 2xx. Une erreur réseau ou un 5xx est relancé une fois après 3 secondes. Chaque tentative est listée sous Webhook sur dehub.io/apps/dev. Considérez quand même dehub.context's client.added comme la référence quand quelqu’un ouvre votre app.

Envoyer des notifications

Créez une clé de notification sur dehub.io/apps/dev. Elle ne s’affiche qu’une fois ; DeHub n’en garde qu’une empreinte, donc une clé perdue est remplacée, pas récupérée.

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…"]
  }'
ChampRègles
notificationIdObligatoire. 128 caractères maximum. Le même id atteint une personne au plus une fois en 24 heures.
titleObligatoire. 32 caractères maximum.
body128 caractères maximum.
targetUrlUn lien https sur le domaine de votre app, ouvert quand on touche la notification.
walletsQui notifier. Sans ce champ, tous ceux qui ont ajouté votre app sont notifiés (jusqu’à 1 000 par appel).

La réponse indique à qui l’envoi a été fait et pourquoi certaines personnes ont été ignorées : { sent, sentTo, skipped: { duplicate, rateLimited, notAdded } }. Chaque personne reçoit au plus une notification toutes les 30 secondes et dix par jour de votre app, et seulement si elle l’a ajoutée et a laissé ses notifications activées.

Reçus de paiement

dehub.actions.pay() ne se résout qu'après que DeHub a vérifié le transfert sur la chaîne, et remet à votre app un reçu signé à vérifier sur votre serveur. Le webhook payment est une seconde copie pour votre serveur, envoyée en arrière-plan. Voir Paiements.

Blog DeHub · Accueil de dehub.io