إنتقل إلى المحتوى الرئيسي

الـ Webhooks

تتيح لك الـ webhooks استلام إشعارات HTTP فورية عند وقوع أحداث في مستأجر FeedbackPulse الخاص بك.


الإعداد

عبر لوحة التحكم

  1. انتقل إلى Settings > Integrations
  2. أدخل Webhook URL
  3. حدد الأحداث التي تريد الاشتراك فيها
  4. اختيارياً عيّن سراً للتحقق من توقيع HMAC
  5. احفظ

عبر API

PUT /api/v2/webhooks/config
{
"url": "https://your-app.com/webhooks/feedbackpulse",
"events": ["submission.created", "submission.status_changed"],
"secret": "your_shared_secret"
}

حمولة Webhook

عند وقوع حدث، يرسل FeedbackPulse طلب POST إلى رابطك:

{
"event": "submission.created",
"timestamp": "2024-03-15T10:30:00Z",
"data": {
"id": 42,
"campaign_id": 1,
"star_rating": 5,
"text_feedback": "Love this product!",
"customer_name": "Jane Doe",
"status": "pending"
}
}

الترويسات

Content-Type: application/json
X-FeedbackPulse-Signature: sha256=abc123...
X-FeedbackPulse-Event: submission.created

التحقق من التوقيع

إذا عيّنت سراً للـ webhook، تحقق من التوقيع:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_FEEDBACKPULSE_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);

if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit('Invalid signature');
}

نقاط النهاية المدعومة

يكتشف FeedbackPulse تلقائياً ويُنسّق الحمولات لـ:

الخدمةنمط URLالصيغة
Slackhooks.slack.com/*صيغة Slack Block Kit
Discorddiscord.com/api/webhooks/*صيغة Discord embed
مخصصأي رابط HTTPSحمولة JSON خام

حماية SSRF

يُتحقق من صحة روابط webhook للحماية من طلبات الجانب الخادم المزيفة:

  • يُحجب localhost و127.0.0.1 و0.0.0.0
  • تُحجب نطاقات IP الخاصة (10.x، 172.16-31.x، 192.168.x)
  • يُسمح فقط بروابط HTTPS العامة

سجلات Webhook

عرض سجل التسليم:

عبر لوحة التحكم

Settings > Integrations > Webhook Logs

تتوفر أيضاً صفحة Webhook Logs مخصصة على /webhooks/logs، توفر سجل تسليم كاملاً مع تفاصيل الاستجابة وخيارات التصفية. يمكنك التصفية حسب نوع الحدث وكود الحالة والنطاق الزمني، وفحص حمولة الطلب الكامل وجسم الاستجابة لكل محاولة تسليم.

عارض سجل Webhook للمشرف

يمتلك المشرفون الرئيسيون إمكانية الوصول إلى عارض سجل webhook على مستوى المنصة على /admin/webhook-logs. يوفر هذا رؤية لتسليمات webhook عبر جميع المستأجرين، مفيد لتشخيص مشاكل التكامل ومراقبة صحة المنصة.

عبر API

GET /api/v2/webhooks/logs

يعرض كل إدخال في السجل:

  • نوع الحدث
  • الرابط
  • كود الاستجابة
  • الحمولة المُرسَلة
  • جسم الاستجابة
  • الطابع الزمني

الخطوات التالية