وبهوکها: دریافت خودکار نتیجه
بهجای پیگیری مداوم، نتیجهٔ هر تسک بهمحض آماده شدن با یک درخواست امضاشده به سرور شما ارسال میشود. رویدادها، ساختار بدنه، بررسی امضا و تلاش مجدد.
چرا وبهوک؟
تولید عکس و ویدیو ناهمگام است. بهجای اینکه هر چند ثانیه GET /api/v1/tasks/:id را صدا بزنید، یک نشانی HTTPS ثبت کنید تا بهمحض تمام شدن هر تسک، یک درخواست POST امضاشده با نتیجهٔ کامل به سرور شما ارسال شود. این کار سهمیهٔ نرخ درخواست شما را هم مصرف نمیکند.
- 1
نشانی را در پنل ثبت کنید
در پنل توسعهدهندگان ← وبهوکها نشانی را وارد و رویدادها را انتخاب کنید. کلید امضایwhsec_…فقط همان لحظه نمایش داده میشود؛ آن را در متغیر محیطی سرور نگه دارید. تا ۵ نشانی میتوانید ثبت کنید. - 2
رویداد آزمایشی بفرستید
دکمهٔ «ارسال آزمایشی» یک رویدادwebhook.testامضاشده میفرستد و کد پاسخ سرور شما را همانجا نشان میدهد. - 3
امضا را بررسی و سریع پاسخ دهید
امضا را با کلید بررسی کنید، ظرف ۱۰ ثانیه کد2xxبرگردانید و پردازش سنگین را در صف انجام دهید.
رویدادها
اطلاعات
chat/completions) همان لحظه پاسخ میدهد و به وبهوک نیاز ندارد.ساختار درخواست
بدنه JSON است و data دقیقاً همان ساختار تسک است، همراه با metadata که هنگام ساخت تسک فرستادهاید:
هدرهای هر درخواست:
BananaAI-Signaturestring- قالب
t=1790508968,v1=5f2c…. مقدارv1برابر HMAC-SHA256 (hex) از رشتهٔ{t}.{rawBody}با کلید امضای وبهوک است. BananaAI-Eventstring- نوع رویداد؛ همان type داخل بدنه.
BananaAI-Deliverystring- شناسهٔ یکتای این ارسال. در تلاشهای مجدد ثابت میماند؛ برای حذف رویدادهای تکراری از آن استفاده کنید.
BananaAI-Timestampstring- زمان امضا (ثانیه یونیکس)؛ همان t در امضا.
بررسی امضا
امضا را روی بدنهٔ خام و پیش از JSON.parse بررسی کنید؛ هر تغییری در فاصلهها یا ترتیب کلیدها امضا را باطل میکند. مقایسه را زمانثابت انجام دهید و رویدادهایی با t قدیمیتر از ۵ دقیقه را رد کنید.
پاسخ و تلاش مجدد
- هر پاسخ
2xxدر کمتر از ۱۰ ثانیه یعنی تحویل موفق. ریدایرکت دنبال نمیشود و ناموفق حساب میشود. - در صورت خطا یا تمام شدن مهلت، تا ۶ بار دوباره ارسال میشود: پس از ۱ دقیقه، ۵ دقیقه، ۳۰ دقیقه، ۲ ساعت و ۸ ساعت (حدود ۱۱ ساعت در مجموع).
- ترتیب رسیدن رویدادها تضمین نمیشود و ممکن است یک رویداد بیش از یک بار برسد؛ با
BananaAI-Deliveryیاdata.idتکراریها را کنار بگذارید. - پس از ۲۵ ارسال ناموفق پیاپی، وبهوک خودکار غیرفعال میشود. پس از رفع مشکل، آن را از پنل دوباره فعال کنید.
- گزارش ۳۰ روز اخیر ارسالها، بدنهٔ دقیق و پاسخ سرور شما در پنل قابل مشاهده است و هر ارسال را میتوانید دوباره بفرستید.
امنیت
- فقط نشانیهای
https://عمومی پذیرفته میشوند؛ IPهای خصوصی و شبکهٔ داخلی مسدودند. - اگر کلید امضا لو رفت، از منوی وبهوک «کلید امضای جدید» را بزنید؛ کلید قبلی بلافاصله باطل میشود.
- نشانی خروجیها را دانلود و روی فضای خودتان نگه دارید. برای نشانیهای ماندگار، پس از رویداد میتوانید تسک را با
GET /api/v1/tasks/:idهم بخوانید.
وبهوک در کنار پیگیری