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…" }
| Olay | Ne Zaman |
|---|---|
app_added | Biri uygulamanızı ekledi. Artık bildirimlerinizi alabilir. |
app_removed | Biri uygulamanızı kaldırdı. Ona bildirim göndermeyi bırakın. |
payment | Birisi 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…"]
}'
| Alan | Kurallar |
|---|---|
notificationId | Zorunlu. En fazla 128 karakter. Aynı kimlik bir kişiye 24 saatte en fazla bir kez ulaşır. |
title | Zorunlu. En fazla 32 karakter. |
body | En fazla 128 karakter. |
targetUrl | Uygulamanızın alan adında, bildirime dokunulduğunda açılan bir https bağlantısı. |
wallets | Kime 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'ı aç