انتقل إلى المحتوى
نظرة عامة نظرة عامة أخبار أخبار
مشاركة

Webhooks والأحداث

أحداث في الوقت الفعلي. تم التسليم بتوقيع HMAC.

يقوم PaperOffice باستدعاء نقطة النهاية الخاصة بك بمجرد حدوث أي تغيير في مستند أو مهمة أو مساحة عمل أو مهمة. لا حاجة للاستعلام المستمر (Polling).

22 نوعًا من الأحداث، توقيع HMAC-SHA256، ثلاث استراتيجيات إعادة محاولة وسجل تسليم لكل محاولة.

HMAC-SHA256 مع كل عملية تسليم حتى 10 تكرارات (الافتراضي 5) متطابق حسب معرّف الحدث

الأحداث المتاحة

22 نوع من الأحداث، مجمعة حسب الكيان

اشترك في أحداث فردية أو استخدم الرمز البردي * لجميع الأحداث.

المستندات

14
  • document.uploaded تم تحميل مستند جديد إلى مساحة عمل
  • document.created مُعرّف بديل لحدث document.uploaded (توافق)
  • document.processed اكتمال بناءي لخط أنابيب OCR/AI-IDP
  • document.edited تم تعديل المستند: تم تحديث البيانات الوصفية أو الوسوم أو المحتوى
  • document.deleted تم نقل المستند إلى سلة المهملات
  • document.restored تم استعادة المستند من سلة المهملات
  • document.moved تم نقل المستند بين مساحات العمل
  • document.version_created إصدار جديد لوثيقة قائمة
  • document.lifecycle_changed تم تغيير حالة الحفظ/الأرشفة
  • document.comment_added تم إنشاء تعليق على مستند
  • document.note_added تم إرفاق ملاحظة داخلية
  • document.tag_added تم تعيين علامة (Tag) لمستند
  • document.legal_hold_placed تم تفعيل الحجز القانوني (غير قابل للتغيير)
  • document.legal_hold_released تم إلغاء الحجز القانوني

المهام

3
  • job.completed اكتمل المهمة غير المتزامنة بنجاح
  • job.failed فشلت المهمة غير المتزامنة بشكل نهائي
  • job.progress تحديث التقدم في المهام الطويلة

Workspaces

2
  • workspace.shared تمت مشاركة مساحة العمل مع مستخدم أو فريق
  • workspace.unshared تم سحب صلاحية الوصول إلى مساحة العمل

المهام

3
  • task.created تم إنشاء مهمة جديدة
  • task.completed تم تحديد المهمة كمكتملة
  • task.overdue تجاوزت المهلة الزمنية للمهمة

الحمولة والرأس

يتبع كل تسليم نفس المخطط

توقعي جسم JSON، رؤوس HTTP ثابتة، طابع زمني ISO-8601 UTC.

جسم الطلب

{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": {
    "pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
    "workspace_id": 17,
    "filename": "invoice-2026-04-17.pdf",
    "mime_type": "application/pdf",
    "size_bytes": 284521,
    "processing_result": {
      "ocr_done": true,
      "classification": "invoice",
      "confidence": 0.98
    }
  }
}

رؤوس طلب HTTP

الرأس قيمة مثال المعنى
Content-Type application/json دائماً JSON، مشفر بـ UTF-8
User-Agent PaperOffice-Webhook/1.0 معرف ثابت لقوائم السماح بجدار الحماية
X-PaperOffice-Event document.processed نوع الحدث المُسلَّم
X-PaperOffice-Event-ID a3b7f9c1… معرف فريد بحجم 128 بت. استخدمه كمفتاح لتكرار الطلبات.
X-PaperOffice-Subscription-ID 42 معرف الاشتراك الذي يستقبل الحدث
X-PaperOffice-Signature sha256=… تجزئة HMAC-SHA256 للجسم الخام، مشفرة بنظام الست عشري
cURL
curl -X POST "https://api.paperoffice.ai/latest/webhooks/subscribe" \  -H "Authorization: Bearer po_ut_YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "My Production Webhook",    "url": "https://yourdomain.com/webhooks/paperoffice",    "events": ["document.processed", "job.completed", "job.failed"],    "retry_policy": "exponential",    "max_retries": 5,    "timeout_ms": 10000  }'

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

قم بالتحقق من كل تسليم باستخدام HMAC-SHA256

احسب تجزئة HMAC-SHA256 لجسم الطلب الخام باستخدام سرّك المشترك وقارن النتيجة مع X-PaperOffice-Signature — يجب أن يكون ذلك بمقارنة ذات زمن تشغيل ثابت.

  • مقارنة ذات زمن تشغيل ثابت

    hash_equals، hmac.compare_digest أو crypto.timingSafeEqual: لا ينبغي أن تكشف المقارنة عن أي فروق في زمن التشغيل.

  • توقيع جسم الطلب الخام

    تنطبق التوقيع على جسم الطلب دون تغيير. قم بتحليل بيانات JSON بعد التحقق فقط، وإلا سيختلف التجزئة.

  • الاشتراك عبر API

    POST /latest/webhooks/subscribe مع name, url و events. إذا تركت secret فارغًا، سيقوم PaperOffice بإنشائه وإرجاعه مرة واحدة فقط.

إعادة المحاولة والتوصيل

ثلاث استراتيجيات إعادة محاولة، حتى 10 تكرارات

اختر السياسة لكل اشتراك. يتم تسجيل كل محاولة مع رمز الحالة، جسم الاستجابة وقياس الوقت.

  • الافتراضي exponential

    أسي (افتراضي)

    يتضاعف الفاصل الزمني بين المحاولات بعد كل محاولة فاشلة.

  • linear

    خطي

    يزيد الفاصل الزمني بين المحاولات بخطوة ثابتة.

  • none

    بدون

    لا إعادة محاولة، حتى في حالة أخطاء 5xx (إرسال ونسيان). مفيد لخطافات الاختبار.

  • نجاح HTTP 2xx ضمن نافذة المهلة الزمنية
  • الحد الأقصى لإعادة المحاولات حتى 10 إعادة محاولة (الافتراضي 5)
  • مهلة زمنية 1000–30000 مللي ثانية لكل محاولة (الافتراضي 10000)
  • سجل التسليم يتم تسجيل كل محاولة؛ ويبقى السجل محفوظًا حتى بعد حذف الاشتراك.

إدارة-API

خمسة نقاط نهاية تحت /latest/webhooks/

إنشاء الاشتراكات وعرضها وتحديثها وحذفها — بالإضافة إلى نقطة نهاية للاختبار. كل استدعاء يحمل رمز حامل (Bearer Token).

  • POST /webhooks/subscribe إنشاء اشتراك؛ يتم توقيع حمولات البيانات باستخدام HMAC-SHA256 أداة MCPpo-webhooks-subscribe
  • GET /webhooks/list عرض جميع اشتراكات الويب هوك الخاصة بالحساب أداة MCPpo-webhooks-list
  • POST /webhooks/update تحديث عنوان URL، الأحداث، الرؤوس، سياسة إعادة المحاولة أو الحالة النشطة أداة MCPpo-webhooks-update
  • POST /webhooks/delete حذف الاشتراك؛ يبقى سجل التسليم ساريًا أداة MCPpo-webhooks-delete
  • POST /webhooks/test إرسال حدث اختبار إلى اشتراك والتحقق من التسليم أداة MCPpo-webhooks-test

الأمان

مصمم من الأساس ليكون آمنًا

ستة آليات تعمل عند كل تسليم — من جانب PaperOffice ومن جانبك.

  • HMAC-SHA256

    يتم توقيع كل تسليم باستخدام سرّك. يجب أن يتم المقارنة في وقت تشغيل ثابت.

  • حماية SSRF

    يتم حظر عناوين IP الخاصة والداخلية، والخوادم المحلية، ونقاط نهاية بيانات السحابة عند الاشتراك وعند الإرسال.

  • آمن ضد إعادة ربط DNS

    يتم التحقق من صحة عنوان IP مرة أخرى أثناء الإرسال وتثبيته باستخدام CURLOPT_RESOLVE.

  • يوصى بـ HTTPS

    يتم قبول http و https. نوصي بـ HTTPS للعمليات الإنتاجية.

  • التكرار عبر معرف الحدث

    يجلب كل تسليم معرّف حدث فريدًا X-PaperOffice-Event-ID. قم بإزالة التكرارات من جانبك.

  • سجل تسليم كامل

    يتم تسجيل جميع المحاولات: رمز الحالة، جسم الاستجابة، قياس الوقت، رسالة الخطأ.

الحدود

يمكن تكوين سلوك التسليم لكل اشتراك

تعيين جميع القيم عند الإنشاء أو لاحقًا عبر /webhooks/update — لكل اشتراك، وليس لكل حساب.

  • 0–10 إعادة المحاولة لكل تسليم (الافتراضي 5)
  • 1,000–30,000 مللي ثانية مهلة لكل محاولة (الافتراضي 10,000)
  • 3 سياسات إعادة المحاولة: none، linear، exponential
  • HMAC-SHA256 توقيع مع كل تسليم

تتوفر Webhooks بدءًا من الخطة Professional. يعرض ملخص الأسعار الخطة المناسبة لإعدادك.

فيديو

Webhooks في العمل

شاهد كيف تعمل Webhooks من PaperOffice في الممارسة العملية — في الفيديو.

Webhooks في العمل

أسئلة

الأسئلة الشائعة حول Webhooks

كيف أتحقق من التسليم؟

احسب HMAC-SHA256 على نص الطلب الخام باستخدام سر اشتراكك وقارن النتيجة في وقت تشغيل ثابت مع رأس X-PaperOffice-Signature (تنسيق sha256=<hex>). إذا لم تتطابق التوقيع، فأجب بـ HTTP 401 ولا تعالج النص.

من أين يأتي السر؟

عند إنشاء الاشتراك عبر POST /latest/webhooks/subscribe. اترك حقل السر فارغًا، وسيقوم PaperOffice بتوليد سر وإرجاعه مرة واحدة في الاستجابة. يمكنك استبداله في أي وقت عبر POST /latest/webhooks/update.

ماذا يحدث إذا لم يستجيب نقطة النهاية الخاصة بي؟

تُعتبر أي استجابة خارج نطاق HTTP 2xx أو انتهاء المهلة (Timeout) محاولة فاشلة. تقوم PaperOffice بإعادة المحاولة وفقاً لسياسة إعادة المحاولة (أسي، خطي، لا شيء) حتى يصل عدد المحاولات إلى العدد المحدد (0-10، والافتراضي هو 5). يتم تسجيل كل محاولة مع رمز الحالة والاستجابة وقياس الوقت في سجل التسليم.

هل يمكن أن تصل نفس التسليم مرتين؟

نعم، قد يحدث ذلك عند إعادة المحاولة بعد انتهاء المهلة. لذا، يرجى إجراء إزالة التكرار (Deduplication) باستخدام X-PaperOffice-Event-ID: تكون المعرّف فريداً لكل حدث ومناسباً كمفتاح للتحكم في التكرار (Idempotency Key) في قاعدة بياناتك.

ما هي الأحداث التي يمكنني الاشتراك فيها؟

22 نوعاً من الأحداث من أربع مجموعات: المستندات، والمهام، ومساحات العمل، والمهام (Tasks). يمكنك الاشتراك في أحداث فردية أو استخدام الرمز البردي * للاشتراك في الكل. يمكنك تضييق نطاق الاشتراك باستخدام عوامل التصفية (مثل workspace_id أو pofid).

في أي خطة تتضمن Webhooks؟

تتوفر Webhooks بدءاً من خطة Professional. يعرض جدول الأسعار الخطة المناسبة لإعدادك.

أين تودون تجربة PaperOffice؟

تم ربط الكمبيوتر والهاتف الذكي: مساحة العمل على جهاز الحاسوب، والالتقاط عبر الهاتف.

لقد أصبحت النسخة التجريبية الخاصة بك جاهزة

من أين ترغبون في البدء؟

تم تحسين مساحة العمل الكاملة لأجهزة الكمبيوتر. وتُعد النسخة المحمولة مناسبة لالتقاط المستندات ومراجعتها والموافقة عليها.

app.paperoffice.ai

البدء على الكمبيوتر

سنرسل رابط الدخول الشخصي الخاص بك إلى بريدك الإلكتروني.

التسجيل مجاناً فتح التطبيق تطبيق PaperOffice المنتج الكامل: ويب وسطح مكتب وجوال. التقاط المستندات وتنظيمها والبحث فيها والعمل عليها مع الفريق. يلزم حساب مجاني فتح ساحة التجربة ساحة التجربة جرّبوا وظائف محددة فوراً — دون تسجيل، بمفتاح API تجريبي مقيّد. بدون تسجيل، لكن بمفتاح API تجريبي مقيّد