DeHubDeHub'ı aç

DeHub › Belgeler

DeHub Webhook’ları ve Bildirim API’si

Sunucunuz ve DeHub iki yönlü konuşur. DeHub webhook’unuza imzalı olaylar gönderir, sunucunuz da uygulamanızı ekleyenlere bildirim gönderir.

Olayları alma

Şunu ayarlayın: webhookUrl alanını şurada ayarlayın: manifestiniz. DeHub şu gövdeyle bir POST isteği gönderir:

{ "event": "app_added", "token": "eyJhbGciOiJFUzI1NiIs…" }
OlayNe Zaman
app_addedBiri uygulamanızı ekledi. Artık bildirimlerinizi alabilir.
app_removedBiri uygulamanızı kaldırdı. Ona bildirim göndermeyi bırakın.
paymentBirisi uygulamanıza şununla ödeme yaptı: dehub.actions.pay(). Token şunları ekler: amount, chainId, txHash ve memo.
tipİsteğe bağlı. Sahip cüzdan bahşiş aldı. Şunları ekler: actor, amount, currency ve postId bahşiş bir gönderideyse.
followİsteğe bağlı. Birisi sahip cüzdanı takip etti. Şunu ekler: actor.
mentionİsteğe bağlı. Birisi sahip cüzdandan bahsetti. Şunları ekler: actor ve postId.
pingŞuradaki Webhook düğmesinden gönderilen bir test: dehub.io/apps/dev.

tip, follow ve mention uygulamanızın sahibi olan cüzdanla ilgilidir, bu yüzden sub o cüzdandır. İstediklerinizi manifestinize yazın ve yeniden gönderin:

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

token şunları içeren imzalı bir JWT’dir: typ: "event", event olay adı, sub (kullanıcının cüzdanı) ve aud (alan adınız). Onu şunlarla aynı açık anahtarlarla doğrulayın: giriş tokenları, ve token'ı doğrulanmayan her gövdeyi yok sayın. 5 saniye içinde 2xx ile yanıt verin. Ağ hatası veya 5xx, 3 saniye sonra bir kez yeniden denenir. Her deneme şuradaki Webhook altında listelenir: dehub.io/apps/dev. Yine de dehub.context's client.added değerini esas alın.

Bildirim gönderme

Şurada bir bildirim anahtarı oluşturun: dehub.io/apps/dev. Yalnızca bir kez gösterilir; DeHub yalnızca bir özetini saklar, bu yüzden kaybolan anahtar geri getirilmez, yenisiyle değiştirilir.

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…"]
  }'
AlanKurallar
notificationIdZorunlu. En fazla 128 karakter. Aynı kimlik bir kişiye 24 saatte en fazla bir kez ulaşır.
titleZorunlu. En fazla 32 karakter.
bodyEn fazla 128 karakter.
targetUrlUygulamanızın alan adında, bildirime dokunulduğunda açılan bir https bağlantısı.
walletsKime bildirim gönderileceği. Boş bırakırsanız uygulamanızı ekleyen herkese gönderilir (çağrı başına en fazla 1.000).

Yanıt kime gönderildiğini ve birinin neden atlandığını söyler: { sent, sentTo, skipped: { duplicate, rateLimited, notAdded } }. Her kişi uygulamanızdan 30 saniyede en fazla bir ve günde en fazla on bildirim alır; bunun için uygulamayı eklemiş ve bildirimlerini açık bırakmış olması gerekir.

Ödeme makbuzları

dehub.actions.pay() yalnızca DeHub aktarımı zincirde kontrol ettikten sonra tamamlanır ve uygulamanıza sunucunuzda doğrulanacak imzalı bir makbuz verir. payment webhook'u sunucunuz için arka planda gönderilen ikinci bir kopyadır. Bakınız Ödemeler.

DeHub Blogu · dehub.io ana sayfası