وب‌هوک‌ها

وب هوک ها راهی برای دریافت اطلاع از رویدادی در وبلاگ شما هستند.

  • یک وبلاگ می تواند حداکثر 5 وب هوک داشته باشد
  • هر وب هوک می تواند در یک یا چند رویداد مشترک شود
رویداد
زمان ارسال
داده‌ها
blog.updated
هر تنظیماتی از وبلاگ به روز می شود
{ blog: Blog }
نوشته
post.created
یک پست جدید ایجاد می شود
{ post: Post }
post.updated
یک پست به روز می شود
{ post: Post }
post.deleted
یک پست حذف می شود
{ post: Post }
post.variant.published
یک نوع پست منتشر شده است
{ post: Post, variant: PostVariant, }
post.variant.unpublished
یک نوع پست منتشر نشده است
{ post: Post, variant: PostVariant, }
برچسب‌ها
tag.created
یک تگ جدید ایجاد می شود
{ tag: Tag }
tag.updated
یک برچسب به روز می شود
{ tag: Tag }
tag.deleted
یک برچسب حذف می شود
{ tag: Tag }
کاربران
user.created
یک کاربر جدید ایجاد می شود
{ user: User }
user.updated
یک کاربر به روز می شود
{ user: User }
user.deleted
یک کاربر حذف شده است
{ user: User }
رسانه
media.created
یک آیتم رسانه ای اضافه شده است
{ media: Media }
media.deleted
یک مورد رسانه ای حذف می شود
{ media: Media }
دیگر
navigation.changed
{ navigation: Navigation[] }
routes.changed
{ routes: Route[] }
languages.changed
{ languages: Language[] }
پاک کردن کش
cache.single
هنگامی که حافظه پنهان یک مسیر باید پاک شود (styles.css ، دارایی ها، رسانه ها و غیره)
{ path: string }
cache.templates
زمانی که حافظه پنهان تمام مسیرهای ایجاد شده توسط الگو باید پاک شود (شاخص، پست ها، فیدها و غیره)
شی خالی
cache.all
زمانی که تمام حافظه پنهان باید پاک شود
شی خالی

درخواست وب‌هوک

وقتی رویدادی اتفاق می افتد، الف POST درخواست به وب هوک ارسال می شود URL. بدن درخواست است JSON شی با ویژگی های زیر را data ویژگی داده رویداد است. برای ساختار داده رویداد به جدول بالا مراجعه کنید.

{
	"subdomain": "my-subdomain",
	"timestamp": 1645208678,
	"event": "cache.single",
	"data": {}
}

امنیت

هر درخواست وب هوک شامل یک هدر X-Signature است که حاوی امضای HMAC-SHA256 بدنه درخواست است که با کلید مخفی وب‌هوک شما امضا شده است. می‌توانید این راز را در کنسول زیر تنظیمات webhook خود پیدا کنید.

برای تایید امضا:

  • بدنه درخواست را با استفاده از HMAC-SHA256 با کلید مخفی وب هوک خود هش کنید.
  • هش حاصل را با مقدار هدر X-Signature مقایسه کنید.
const signature = request.headers['x-signature'];
const expected = crypto
	.createHmac('sha256', env.HB_WEBHOOK_SECRET)
	.update(JSON.stringify(request.body))
	.digest('hex');

if (signature !== expected) {
	return 'Unauthorized';
}

پاسخ و تلاش مجدد

ما انتظار داریم کد پاسخ 200 HTTP از سرور شما برای علامت گذاری وب هوک به عنوان موفقیت آمیز باشد. اگر کد پاسخ دیگری دریافت کردیم یا نتوانیم به سرورهای شما دسترسی پیدا کنیم، پس از آن برای 3 بار دیگر سعی می کنیم وب هوک را ارسال کنیم.

  • 1 دقیقه
  • 5 دقیقه
  • 30 دقیقه

اگر همه شکست بخورند، آن وب هوک را به عنوان ناموفق علامت گذاری می کنیم و دیگر آن را به صورت خودکار ارسال نمی کنیم.