الانتقال إلى الوثائق
SparkGlimDeveloper
مركز التكامل بمساعدة الذكاء الاصطناعي
SparkGlimSparkGlim للمطوّرين
ابحث في جميع الوثائق

جرّب موضوعًا بلغتك أو مسار API دقيقًا.

    مرجع API

    إنشاء حملة

    ينشئ حملة ضمن المنظمة المعتمدة ببيانات موثقة وملكية المنشئ؛ ولا يعني إنشاء المسودة نشرها.

    POSThttps://api.sparkglim.net/api/white-label/v1/campaigns

    نموذج الوصول

    نموذج الوصول
    توقيع المنظمة HMAC من الخادم
    الصلاحية المطلوبة
    campaigns:write
    التوفر الموثّق
    منفذ في المصدر

    التوفر موثق من المصدر وليس ضمانًا لتشغيل الإنتاج.

    يبقى التوقيع الخاص في خادمك؛ تستخدم واجهة الإصدار 1 تنسيق توقيع v2 ولا تصبح واجهة إصدار 2.

    الترويسات

    الاسمالنوعالتحقق من المدخلات
    x-white-label-domainمطلوب

    اسم الموقع الموثق الذي يحدد حساب المنظمة المعتمد ويربط الطلب به.

    stringالتحقق: اسم مضيف HTTPS موثّق.
    x-white-label-key-idمطلوب

    المعرّف المستخرج من قيمة المفتاح الخاص الواحدة؛ لا ترسل السر في هذه الترويسة.

    stringالتحقق: المعرّف الداخلي للمفتاح الخاص الصادر.
    x-white-label-signature-versionمطلوب

    يحدد تنسيق التوقيع المرتبط بالنطاق؛ وتبقى مسارات الواجهة في الإصدار 1.

    stringالتحقق: 2.
    x-white-label-timestampمطلوب

    توقيت توقيع الطلب بالمللي ثانية؛ يقارنه الخادم بساعته لرفض الطلبات القديمة.

    stringالتحقق: توقيت بالمللي ثانية من 13 رقمًا؛ ضمن خمس دقائق.
    x-white-label-nonceمطلوب

    قيمة توقيع عشوائية جديدة يسجلها الخادم لمنع إعادة تشغيل الطلب الموقّع.

    stringالتحقق: قيمة جديدة: 16–128 [A-Za-z0-9_-].
    x-white-label-signatureمطلوب

    توقيع HMAC-SHA256 للنطاق ومفتاح عدم التكرار واعتماد الحملة والتوقيت وnonce والطريقة والمسار والاستعلام المرتب وبصمة الجسم الدقيقة.

    stringالتحقق: HMAC-SHA256 بالنظام الست عشري وبأحرف صغيرة.
    x-white-label-campaign-keyاختياري

    مفتاح حملة كامل اختياري يضيّق الطلب الخاص إلى الحملة المصرح بها نفسها.

    stringالتحقق: قيمة keyId:secret كاملة واختيارية ومقيّدة بالنطاق.

    الطلب

    الاسمالنوعالتحقق من المدخلات
    titleمطلوب

    عنوان الحملة العام الذي يقدمه المنظم المصرح به.

    stringالتحقق: 3–255.
    descriptionمطلوب

    وصف يقدمه المنظم لشرح الحملة أو نوع التذكرة.

    stringالتحقق: 10–5000.
    campaign_typeمطلوب

    يحدد خدمة التذاكر أو التصويت أو التبرعات؛ ولا يمنح وحدة غير مصرح بها.

    enumالتحقق: ticketing | voting | donation.
    start_dateمطلوب

    توقيت بداية الحملة بصيغة ISO.

    stringالتحقق: تاريخ ووقت بصيغة ISO.
    end_dateمطلوب

    توقيت إغلاق الحملة بصيغة ISO.

    stringالتحقق: تاريخ ووقت بصيغة ISO.
    country_codeاختياري

    رمز بلد البيع المهيأ؛ ويتحقق الخادم من أهلية الحساب والسوق.

    stringالتحقق: ISO2.
    currency_codeاختياري

    عملة الحملة المسموحة؛ ولا يجيز اختيار بلد عملة جديدة.

    stringالتحقق: ISO3.
    slugاختياري

    معرّف مناسب للرابط للحملة القائمة أو المقال المنشور.

    stringالتحقق: مخطط المعرّف النصي المهيأ.
    statusاختياري

    الحالة المدعومة المطلوبة؛ وتتحكم قواعد الموافقة في النشر والوصول.

    enumالتحقق: draft | pending_approval | approved | rejected | archived.
    vote_priceاختياري

    قيمة تهيئة المنتج بعملة الحملة أو وحدة سعتها الخاصة.

    numberالتحقق: >=0.
    donation_goalاختياري

    قيمة تهيئة المنتج بعملة الحملة أو وحدة سعتها الخاصة.

    numberالتحقق: >=0.
    ticket_priceاختياري

    قيمة تهيئة المنتج بعملة الحملة أو وحدة سعتها الخاصة.

    numberالتحقق: >=0.
    ticket_capacityاختياري

    قيمة تهيئة المنتج بعملة الحملة أو وحدة سعتها الخاصة.

    integerالتحقق: >0.
    image_urlاختياري

    رابط صورة المورد المقدمة؛ استخدم وسائط عامة مصرحًا بها.

    string|nullالتحقق: URL.
    banner_urlاختياري

    رابط غلاف الحملة المقدم من المنظم.

    string|nullالتحقق: URL.
    categoryاختياري

    فئة الحملة المهيأة أو فئة إعدادات معتمدة حسب المورد.

    string|nullالتحقق: <=120.
    locationاختياري

    موقع الحملة العام أو مرشح الموقع؛ وهو منفصل عن بلد البيع المالي.

    string|nullالتحقق: <=255.
    event_dateاختياري

    موعد الحدث، وهو منفصل عن فترة بيع الحملة.

    string|nullالتحقق: تاريخ ووقت بصيغة ISO.
    verification_requiredاختياري

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

    booleanالتحقق: القيمة الافتراضية: true.
    metadataاختياري

    بيانات JSON إضافية يقبلها المخطط؛ ولا تتجاوز التفويض أو الأسعار أو الملكية.

    objectالتحقق: كائن JSON.

    الطلب

    تصف الأمثلة العقد ولا تُنفذ. استخدم سجلات اختبار مصرحًا بها، ولا تلصق أسرارًا حقيقية في هذه الصفحات.

    POST /api/white-label/v1/campaigns
    http
    POST /api/white-label/v1/campaigns HTTP/1.1
    Host: api.sparkglim.net
    x-white-label-domain: events.example.com
    x-white-label-key-id: <ISSUED_KEY_ID>
    x-white-label-signature-version: 2
    x-white-label-timestamp: <FRESH_MILLISECONDS>
    x-white-label-nonce: <FRESH_SIGNING_NONCE>
    x-white-label-signature: <SERVER_GENERATED_SIGNATURE>
    Content-Type: application/json
    
    {
      "title": "Example campaign",
      "description": "An illustrative campaign description.",
      "campaign_type": "ticketing",
      "start_date": "2030-06-01T09:00:00.000Z",
      "end_date": "2030-06-02T18:00:00.000Z"
    }

    الاستجابة

    استجابة النجاح · HTTP 201
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "draft"
      },
      "requestId": "wlapi_example"
    }
    استجابة الخطأ · HTTP 400
    json
    {
      "success": false,
      "error": "<ERROR_MESSAGE>",
      "requestId": "wlapi_example"
    }

    تستخدم أخطاء التحقق والصلاحيات والموارد والأعطال حالة HTTP وبنية الخطأ الخاصة بالمعالج.

    الحدود وإعادة المحاولة

    للمنظمات: 120 طلبًا لكل مفتاح و300 لكل IP في النافذة؛ التزم بـ Retry-After وترويسات X-RateLimit.

    توافق المصدر

    تتطلب العمليات المصرح بها اختبارًا خاصًا بالحساب.

    • server/src/api/router.ts
    • server/src/api/routes/white-label.ts
    • server/src/white-label/auth.ts
    • server/src/white-label/schemas.ts
    • server/src/white-label/organization-service.ts
    • server/src/white-label/service.ts