⁦Fig. D16 · Docs › API⁩ › توصيل ويب هوك موقّع، يُعاد، بلا تكرار · ⁦10⁩ نقاط نهاية لكل مستخدم
الحدث
  • inbox.new_message
  • inbox.message_failed
  • inbox.read
  • account.status_change
  • account.health_update
  • account.trust_changed
  • account.power_changed
  • account.presence
  • notification.new
⁦POST⁩ إلى ⁦URL⁩ خاصتك⁦http(s)⁩ عام، لا تُتبع التحويلات
X-TGP-Event:     inbox.new_message
X-TGP-Delivery:  82a91c75-7446-4ebe-8f79-3013cceaa1d7
X-TGP-Timestamp: 1787308800
X-TGP-Signature: v1=<hex>

{ "id", "type", "created_at",
  "data": { account_id, conversation_id,
            message { direction: in | out },
            conversation { peer_type, muted } } }
التحقق: يجب أن يساوي ⁦v1=HMAC-SHA256(secret, "{timestamp}." + raw_body)⁩ قيمة ⁦X-TGP-Signature⁩؛ ارفض الطوابع الزمنية الأقدم من بضع دقائق.
أي ⁦2xx⁩ خلال ⁦10 s⁩ مُسلَّم · يُحفظ السجل ⁦7⁩ أيام
أي شيء آخر، أو انتهاء المهلة يُعاد وفق السلّم أدناه · نفس معرّف ⁦X-TGP-Delivery⁩، أزل التكرار عليه
سلّم الإعادةخمسة إخفاقات متتالية تعطّل نقطة النهاية؛ إعادة تفعيلها تصفّر العداد
⁧أول محاولة⁩ +10 s +1 m +5 m +30 m +2 h ⁧فشل⁩ ⁧يُحفظ ⁦30 d⁩⁩ ⁧التباعد ليس بمقياس⁩
التسجيل
⁦POST /api/webhooks⁩ مع ⁦url + events⁩؛ ⁦events⁩ فارغة تعني الكل؛ الاستجابة تحمل سر التوقيع
الديمومة
ويب هوك هي القناة الدائمة؛ دفق ⁦Socket.IO⁩ يسلّم مرة واحدة ويُسقط ما فاتك أثناء الانقطاع
اللحاق
⁦GET /api/conversations/{id}/messages?after_msg_id=…⁩ يسد أي فجوة دون إعادة قراءة