إشعارات الويب هوك
إضافة مشترك ويب هوك
سجّل الدخول إلى Instatus من instatus.com/login ثم اختر صفحة الحالة الخاصة بك.
انتقل إلى المشتركون، ثم ويب هوك.
انقر على إضافة مشترك ويب هوك،
سيظهر نموذج جديد يمكنك فيه إدخال:
- رابط الويب هوك
- عنوان البريد الإلكتروني

سنرسل طلبات إلى الرابط الخاص بك باستخدام هذه الصيغة وستُرسل رسالة بريد إلكتروني إلى العنوان المحدد عند وجود مشكلة في الرابط.
يمكنك تسمية مشترك الويب هوك بالنقر عليه وكتابة اسم في النموذج، كما يمكنك حذف هذا المشترك بالنقر على إلغاء الاشتراك.
التحقق من حمولة الويب هوك
يُنصح بشدة بالتحقق من حمولة الويب هوك في نقطة نهاية الويب هوك.
نوقّع حمولات الويب هوك بمفتاح سري ونضيف التوقيع في ترويسة باسم x-instatus-webhook-signature. يتيح لك هذا التوقيع التحقق من أن الويب هوك قادم من Instatus.
خطوات التحقق من الويب هوك
- احصل على المفتاح السري للويب هوك من لوحة التحكم (يمكنك إيجاده أثناء تعديل أو إنشاء ويب هوك، ويمكنك تخصيصه هناك أيضًا).

-
أنشئ نقطة نهاية جديدة على خادمك لاستقبال الويب هوك.
-
قارن التوقيع بالتوقيع الذي يولّده خادمك للتحقق.
-
إذا تطابق التوقيعان، عالج الويب هوك.
مثال برمجي
import crypto from 'crypto'import express from 'express'const app = express()app.use(express.json())const WEBHOOK_SECRET = 'your-webhook-secret'function isVerifiedPayload(payload, signature, secret) {const hmac = crypto.createHmac('sha256', secret)const digest = hmac.update(JSON.stringify(payload)).digest('hex')return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signature))}app.post('/endpoint/to/webhook', (req, res) => {const payload = req.bodyconst signature = req.header('x-instatus-webhook-signature')if (!signature) {return res.status(400).send('Signature missing')}if (!isVerifiedPayload(payload, signature, WEBHOOK_SECRET)) {return res.status(401).send('Invalid signature')}// Process the valid webhookres.status(200).send('Webhook received')})app.listen(3000, () => console.log('Server running on port 3000'))
لماذا يهم التحقق
- يضمن الأصالة: يؤكد أن الويب هوك صادر من منصتنا.
- يمنع التلاعب: يكشف أي تغييرات في الحمولة.
- يحسّن الأمان: يحمي من هجمات الإعادة والوصول غير المصرّح به.