خطافات الويب وواجهة الإشعارات في DeHub
يتحدث خادمك وDeHub في الاتجاهين. يرسل DeHub أحداثًا موقّعة إلى خطاف الويب لديك، ويرسل خادمك إشعارات لمن أضافوا تطبيقك.
استقبال الأحداث
اضبط webhookUrl في ملف البيان. يرسل DeHub طلب POST بهذا المحتوى:
{ "event": "app_added", "token": "eyJhbGciOiJFUzI1NiIs…" }
| الحدث | متى |
|---|---|
app_added | أضاف أحدهم تطبيقك. يمكنه الآن تلقي إشعاراتك. |
app_removed | أزال أحدهم تطبيقك. توقّف عن إرسال الإشعارات إليه. |
payment | دفع شخص ما لتطبيقك باستخدام dehub.actions.pay(). يضيف الرمز amount, chainId, txHash و memo. |
tip | عند الطلب. تلقت المحفظة المالكة إكرامية. يضيف actor, amount, currency و postId عندما تكون الإكرامية على منشور. |
follow | عند الطلب. تابع شخص ما المحفظة المالكة. يضيف actor. |
mention | عند الطلب. أشار شخص ما إلى المحفظة المالكة. يضيف actor و postId. |
ping | اختبار يُرسل من زر Webhook في dehub.io/apps/dev. |
tip, follow و mention تخص المحفظة التي تملك تطبيقك، لذا فإن sub هو تلك المحفظة. أدرج ما تريده في ملف البيان ثم أرسله مرة أخرى:
"webhookUrl": "https://tipjar.example.com/api/dehub-webhook",
"webhookEvents": ["tip", "follow", "mention"]
token هو JWT موقّع يحتوي على typ: "event"، و event اسم الحدث، sub (محفظة المستخدم) و aud (نطاقك). تحقق منه بالمفاتيح العامة نفسها المستخدمة لـ رموز تسجيل الدخول، وتجاهل أي محتوى لا يمكن التحقق من رمزه. أجب خلال 5 ثوانٍ بـ 2xx. يُعاد خطأ الشبكة أو 5xx مرة واحدة بعد 3 ثوانٍ. تظهر كل محاولة تحت Webhook في dehub.io/apps/dev. ومع ذلك اعتبر dehub.context's client.added كمصدر للحقيقة عندما يفتح أحدهم تطبيقك.
إرسال الإشعارات
أنشئ مفتاح إشعارات في dehub.io/apps/dev. لا يظهر إلا مرة واحدة؛ يحتفظ DeHub ببصمته فقط، لذا يُستبدل المفتاح المفقود ولا يُسترجع.
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…"]
}'
| الحقل | القواعد |
|---|---|
notificationId | مطلوب. حتى 128 حرفًا. يصل المعرّف نفسه إلى الشخص مرة واحدة على الأكثر كل 24 ساعة. |
title | مطلوب. حتى 32 حرفًا. |
body | حتى 128 حرفًا. |
targetUrl | رابط https على نطاق تطبيقك، يُفتح عند النقر على الإشعار. |
wallets | من يُرسل إليه الإشعار. اتركه فارغًا لإرسال الإشعار لكل من أضاف تطبيقك (حتى 1,000 في الاستدعاء). |
تخبرك الإجابة لمن أُرسل ولماذا تم تخطي أي شخص: { sent, sentTo, skipped: { duplicate, rateLimited, notAdded } }. يتلقى كل شخص إشعارًا واحدًا على الأكثر كل 30 ثانية وعشرة يوميًا من تطبيقك، وذلك فقط إذا أضافه وترك إشعاراته مفعّلة.
إيصالات الدفع
dehub.actions.pay() لا يكتمل إلا بعد أن تتحقق DeHub من التحويل على السلسلة، ويعطي تطبيقك إيصالًا موقّعًا للتحقق منه على خادمك. إن payment webhook نسخة ثانية لخادمك تُرسل في الخلفية. راجع المدفوعات.
افتح DeHub