⁦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⁩ برابر باشد؛ ⁦timestamp⁩ قدیمی‌تر از چند دقیقه را رد کنید.
هر ⁦2xx⁩ تا ⁦10 s⁩ تحویل‌شده · رکورد ⁦7⁩ روز می‌ماند
هر چیز دیگر، یا تایم‌اوت تلاش مجدد طبق نردبان زیر · همان ⁦X-TGP-Delivery id⁩، بر اساس آن تکرار را حذف کنید
نردبان تلاشپنج خطای پیاپی اندپوینت را خاموش می‌کند؛ روشن‌کردن دوباره شمارنده را صفر می‌کند
⁧تلاش اول⁩ +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=…⁩ هر شکاف را بدون بازخوانی می‌بندد