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

تكوين النظام

يستخدم OmniCRM نظامي تكوين رئيسيين: crm_config.yaml لإعدادات واجهة برمجة التطبيقات الخلفية و متغيرات البيئة لواجهة المستخدم React. تغطي هذه الوثيقة جميع خيارات التكوين وكيفية تعديلها.

نظرة عامة على ملفات التكوين

تكوين واجهة برمجة التطبيقات الخلفية:

  • الملف: OmniCRM-API/crm_config.yaml
  • التنسيق: YAML
  • يتطلب: إعادة تشغيل واجهة برمجة التطبيقات بعد التغييرات
  • يستخدم لـ: قاعدة البيانات، التكاملات، الأمان، التزويد

تكوين واجهة المستخدم الأمامية:

  • الملف: OmniCRM-UI/.env
  • التنسيق: متغيرات البيئة
  • يتطلب: إعادة بناء واجهة المستخدم بعد التغييرات
  • يستخدم لـ: العلامة التجارية، الميزات، الخدمات الخارجية

التكوين الخلفي (crm_config.yaml)

يحتوي ملف crm_config.yaml على جميع إعدادات النظام الخلفي.

تكوين قاعدة البيانات

database:
username: omnitouch
password: omnitouch2024
server: localhost

الحقول:

  • username - اسم مستخدم قاعدة بيانات MySQL
  • password - كلمة مرور قاعدة بيانات MySQL
  • server - اسم مضيف خادم قاعدة البيانات أو IP (افتراضي: localhost)

اتصال قاعدة البيانات:

  • اسم قاعدة البيانات مشفر كـ omnicrm
  • المنفذ الافتراضي: 3306 (افتراضي MySQL)
  • سلسلة الاتصال: mysql+pymysql://username:password@server/omnicrm

ملاحظة أمان: لا تقم أبداً بإرسال هذا الملف مع بيانات الاعتماد الحقيقية إلى التحكم في الإصدارات. استخدم تكوينات خاصة بالبيئة أو إدارة الأسرار.

أنواع الخدمات

service_types:
- omnicharge
- mobile
- internet
- iptv
- voip

الغرض: تعريف قيم نوع الخدمة الصالحة لحقل service_type.

الأنواع الافتراضية:

  • mobile - خدمات الهاتف المحمول/الخلوية
  • internet - الإنترنت الثابت (الألياف، DSL، اللاسلكي)
  • iptv - خدمات التلفزيون
  • voip - خدمات الصوت عبر الإنترنت
  • omnicharge - خدمات الفوترة/الشحن

أضف أنواع خدمات مخصصة هنا لحالات الاستخدام الخاصة بك.

تكوين HSS (خادم المشتركين المنزلي)

hss:
hss_peers:
- 'http://10.179.2.140:8080'
apn_list: "1,2,3,4,5,6"

الحقول:

  • hss_peers - قائمة عناوين URL لخوادم HSS لإدارة المشتركين
  • apn_list - قائمة مفصولة بفواصل من معرفات APN (اسم نقطة الوصول)

يستخدم لـ: تزويد الشبكة المحمولة ومصادقة المشتركين.

تكوين بريد Mailjet الإلكتروني

mailjet:
api_key: your_mailjet_api_key
api_secret: your_mailjet_api_secret

api_crmCommunicationCustomerWelcome:
from_email: "support@yourcompany.com"
from_name: "Your Company Support"
template_id: 5977509
subject: "Welcome to Your Company"

api_crmCommunicationCustomerInvoice:
from_email: "billing@yourcompany.com"
from_name: "Your Company Billing"
template_id: 6759851
subject: "Your Invoice - "

أنواع البريد الإلكتروني المكونة:

  • api_crmCommunicationCustomerWelcome - بريد ترحيبي للعميل الجديد
  • api_crmCommunicationCustomerInvoice - تسليم الفاتورة
  • api_crmCommunicationCustomerInvoiceReminder - تذكيرات الفواتير المتأخرة
  • api_crmCommunicationUserWelcome - ترحيب بالموظف الجديد
  • api_crmCommunicationUserPasswordReset - طلبات إعادة تعيين كلمة المرور
  • api_crmCommunicationUserPasswordResetSuccess - إعادة تعيين كلمة المرور الناجحة
  • api_crmCommunicationUserPasswordChange - إشعارات تغيير كلمة المرور
  • api_crmCommunicationEmailVerification - التحقق من عنوان البريد الإلكتروني
  • api_crmCommunicationsBalanceExpired - إشعارات انتهاء الخدمة
  • api_crmCommunicationsBalanceLow - تنبيهات الرصيد المنخفض

معرفات القوالب:

احصل عليها من حساب Mailjet الخاص بك بعد إنشاء قوالب البريد الإلكتروني. انظر integrations_mailjet للحصول على التفاصيل.

تكوين التزويد

provisioning:
failure_list: ['admin@yourcompany.com', 'ops@yourcompany.com']

الحقول:

  • failure_list - عناوين البريد الإلكتروني التي يتم إخطارها عند فشل التزويد

عندما تفشل دفاتر اللعب Ansible أثناء التزويد، يقوم النظام بإرسال تفاصيل الخطأ إلى هذه العناوين.

تكوين الفاتورة

invoice:
template_filename: 'your_invoice_template.html'

الحقول:

  • template_filename - ملف قالب HTML لتوليد الفاتورة

يجب أن يوجد ملف القالب في دليل OmniCRM-API/templates/.

عنوان URL الأساسي لـ CRM

crm:
base_url: 'http://localhost:5000'

الغرض: يستخدمه دفاتر اللعب Ansible لإجراء مكالمات API مرة أخرى إلى CRM.

مهم:

  • لا تقم بتضمين شرطة مائلة في النهاية
  • استخدم عنوان URL يمكن الوصول إليه علنًا إذا كانت دفاتر اللعب تعمل على خوادم مختلفة
  • قم بتحديثه عند النشر في الإنتاج (على سبيل المثال، https://api.yourcrm.com)

تكوين OCS (نظام الشحن عبر الإنترنت)

ocs:
ocsApi: 'http://10.179.2.142:8080/api'
ocsTenant: 'mnc380.mcc313.3gppnetwork.org'
cgrates: 'localhost:2080'

الحقول:

  • ocsApi - عنوان URL لنقطة نهاية OCS REST API
  • ocsTenant - معرف المستأجر لنشر OCS متعدد المستأجرين
  • cgrates - نقطة نهاية CGRateS JSON-RPC (المضيف:المنفذ)

يستخدم لـ: الشحن في الوقت الحقيقي، إدارة الرصيد، تتبع الاستخدام.

تكوين SMSC (مركز الرسائل القصيرة)

smsc:
source_msisdn: 'YourCompany'
smsc_url: 'http://10.179.2.216/SMSc/'
api_key: 'your_smsc_api_key'

الحقول:

  • source_msisdn - معرف المرسل للرسائل القصيرة الصادرة (اسم الشركة أو الرمز القصير)
  • smsc_url - نقطة نهاية API لمركز الرسائل القصيرة
  • api_key - مفتاح المصادقة لـ SMSC API

يستخدم لـ: إرسال إشعارات الرسائل القصيرة (تنبيهات الرصيد، OTPs، إلخ)

تكوين بث الخلايا

cbc_url: 'http://10.179.1.113:8080'

الغرض: نقطة نهاية API لمركز بث الخلايا (CBC) لتنبيهات الطوارئ.

انظر features_cell_broadcast للحصول على تفاصيل الاستخدام.

مفتاح السر JWT

jwt_secret: '2b93110f723db60172c8e9a1eaa80027a9a9c3f05b44e50dc3fcf38dba68d87e'

الغرض: مفتاح سري لتوقيع رموز المصادقة JWT.

الأمان:

  • قم بتوليده باستخدام: openssl rand -hex 32
  • لا تشارك علنًا
  • تغيير هذا يبطل جميع جلسات المستخدم الحالية
  • استخدم أسرار مختلفة للتطوير/الاختبار/الإنتاج

تكوين دفع Stripe

stripe:
secret_key: 'sk_test_...'
publishable_key: 'pk_test_...'
currency: 'usd'
statement_descriptor_suffix: 'YOURCOMPANY'

الحقول:

  • secret_key - مفتاح API السري لـ Stripe (يبدأ بـ sk_)
  • publishable_key - مفتاح قابل للنشر لـ Stripe (يبدأ بـ pk_)
  • currency - رمز العملة ISO 4217 (usd، gbp، aud، eur، إلخ)
  • statement_descriptor_suffix - النص الذي يظهر على بيانات بطاقات الائتمان للعملاء

أنواع المفاتيح:

  • مفاتيح الاختبار: sk_test_... و pk_test_... (للتطوير)
  • مفاتيح الإنتاج: sk_live_... و pk_live_... (لإنتاج)

انظر integrations_stripe للحص��ل على تفاصيل الإعداد.

مفاتيح API

api_keys:
"your-secure-api-key-minimum-32-chars":
roles: ["admin"]
ips: ["127.0.0.1", "::1"]
"another-api-key-for-specific-service":
roles: ["customer_service_agent_1"]
ips: ["10.0.1.50"]

الهيكل:

  • المفتاح (سلسلة نصية): مفتاح API الفعلي (حد أدنى 32 حرفًا)
  • الأدوار (قائمة): أسماء الأدوار التي يمكن لهذا المفتاح الوصول إليها
  • ips (قائمة، اختيارية): عناوين IP المسموح لها باستخدام هذا المفتاح

توليد مفاتيح API:

openssl rand -base64 48

الأدوار:

  • admin - وصول كامل إلى جميع نقاط النهاية
  • أدوار مخصصة محددة في نظام RBAC

انظر administration_api_keys و concepts_api للحصول على التفاصيل.

قائمة IP البيضاء

ip_whitelist:
"10.179.2.142":
roles: ["admin"]
"192.168.1.100":
roles: ["provisioning"]

الغرض: السماح لعناوين IP محددة بالوصول إلى واجهة برمجة التطبيقات دون مصادقة.

الهيكل:

  • عنوان IP (سلسلة نصية): عنوان IPv4 لإضافته إلى القائمة البيضاء
  • الأدوار (قائمة): الأدوار المعينة للطلبات من هذا IP

تحذير أمان:

  • استخدمه فقط للشبكات الداخلية الموثوقة
  • يجب ألا تستخدم عناوين IP المحلية (127.0.0.1، ::1)
  • استخدم مفاتيح API بدلاً من ذلك للوصول الخارجي
  • اعتبر قواعد جدار الحماية كحماية إضافية

التكوين الأمامي (.env)

تم تكوين واجهة المستخدم React عبر متغيرات البيئة في OmniCRM-UI/.env.

تكوين العلامة التجارية

REACT_APP_COMPANY_NAME="YourCompany"
REACT_APP_PORTAL_NAME="YourPortal"
REACT_APP_SELF_CARE_NAME="YourCare"
REACT_APP_COMPANY_TAGLINE="Your Company Slogan"

الحقول:

  • REACT_APP_COMPANY_NAME - اسم الشركة (يظهر في العناوين، البريد الإلكتروني، العلامة التجارية)
  • REACT_APP_PORTAL_NAME - اسم بوابة الإدارة (عناوين الصفحات، التنقل)
  • REACT_APP_SELF_CARE_NAME - اسم بوابة العملاء
  • REACT_APP_COMPANY_TAGLINE - الشعار التسويقي (يظهر في صفحة تسجيل الدخول)

مثال:

التكوين الإقليمي

REACT_APP_DEFAULT_LOCATION="London, United Kingdom"
REACT_APP_DEFAULT_COUNTRY="United Kingdom"
REACT_APP_DEFAULT_LANGUAGE="en"
REACT_APP_LOCALE="en-GB"

الحقول:

  • REACT_APP_DEFAULT_LOCATION - الموقع الافتراضي للخرائط والعناوين
  • REACT_APP_DEFAULT_COUNTRY - الدولة الافتراضية للنماذج
  • REACT_APP_DEFAULT_LANGUAGE - لغة واجهة المستخدم (ar، ch، en، fr، gr، it، ru، sp)
  • REACT_APP_LOCALE - تنسيق التاريخ/الرقم (en-GB، en-US، إلخ)

اللغات المدعومة:

  • ar - العربية
  • ch - الصينية
  • en - الإنجليزية (افتراضي)
  • fr - الفرنسية
  • gr - اليونانية
  • it - الإيطالية
  • ru - الروسية
  • sp - الإسبانية

تكوين العملة

REACT_APP_CURRENCY_CODE="USD"
REACT_APP_CURRENCY_SYMBOL="$"

الحقول:

  • REACT_APP_CURRENCY_CODE - رمز العملة ISO 4217
  • REACT_APP_CURRENCY_SYMBOL - الرمز الذي سيتم عرضه (£، $، €، إلخ)

العملات الشائعة:

  • USD - $ (الدولار الأمريكي)
  • GBP - £ (الجنيه البريطاني)
  • EUR - € (اليورو)
  • AUD - $ (الدولار الأسترالي)
  • CAD - $ (الدولار الكندي)

ملاحظة: يجب أن تتطابق مع stripe.currency في crm_config.yaml.

تكوين سمة اللون

REACT_APP_PRIMARY_COLOR=#405189
REACT_APP_SECONDARY_COLOR=#2bFFcf
REACT_APP_TERTIARY_COLOR=#1a9fbf

الألوان المتاحة:

  • REACT_APP_PRIMARY_COLOR - اللون الرئيسي للعلامة التجارية (الأزرار، الروابط، التمييزات)
  • REACT_APP_SECONDARY_COLOR - لون التمييز
  • REACT_APP_TERTIARY_COLOR - تمييز إضافي
  • REACT_APP_SUCCESS_COLOR - رسائل النجاح (#28a745)
  • REACT_APP_INFO_COLOR - رسائل المعلومات (#17a2b8)
  • REACT_APP_WARNING_COLOR - التحذيرات (#ffc107)
  • REACT_APP_DANGER_COLOR - الأخطاء (#dc3545)
  • REACT_APP_LIGHT_COLOR - الخلفيات الفاتحة (#f8f9fa)
  • REACT_APP_DARK_COLOR - النصوص الداكنة (#343a40)
  • REACT_APP_PRIMARY_DARK_COLOR - النسخة الداكنة من اللون الرئيسي (لوضع الظلام/حالات التحويم)

التنسيق: رموز اللون السداسية (#RRGGBB)

تكوين الخط

REACT_APP_FONT_FAMILY=Quicksand

الغرض: يحدد عائلة الخط الرئيسية لواجهة المستخدم بالكامل.

مهم: جميع الخطوط مستضافة محليًا داخل تطبيق OmniCRM-UI. هذا يعني:

  • لا تحميل خطوط خارجية - الخطوط مضمنة مع التطبيق
  • متوافقة مع البيئة المغلقة - لا حاجة للوصول إلى الإنترنت لتعمل الخطوط
  • تشغيل غير متصل - وظيفة كاملة في بيئات الشبكات المعزولة أو المقيدة
  • الخصوصية - لا طلبات خارجية إلى Google Fonts، Adobe Fonts، أو غيرها من CDNs
  • الأداء - تحميل أسرع بدون تبعيات خارجية
  • الأمان - لا تتبع من جهات خارجية أو تسرب بيانات من خلال طلبات الخطوط

الخيارات المتاحة:

خطوط بدون سيريف:

  • Inter
  • Roboto
  • Open Sans
  • Lato
  • Quicksand (افتراضي)
  • Poppins
  • Nunito
  • Montserrat
  • Work Sans
  • Source Sans Pro
  • Raleway
  • Ubuntu
  • Josefin Sans
  • HKGrotesk

خطوط سيريف:

  • Merriweather
  • Lora
  • Playfair Display

خطوط النظام:

  • System - تستخدم خطوط الجهاز الأصلية لأفضل أداء وأصغر حجم حزمة

الافتراضي: Quicksand

إضافة خطوط مخصصة

نعم، يمكنك إضافة خطوط إضافية! جميع الخطوط مخزنة محليًا في التطبيق.

لإضافة خط مخصص جديد:

  1. أضف ملفات الخطوط إلى OmniCRM-UI/src/assets/fonts/your-font-name/

    • استخدم تنسيق WOFF2 لأفضل ضغط ودعم المتصفح
    • قم بتضمين أوزان متعددة (300، 400، 500، 600، 700) للتقديم الصحيح
    • اسم الملفات: your-font-name-300.woff2, your-font-name-400.woff2، إلخ.
  2. حدد قواعد @font-face في OmniCRM-UI/src/assets/scss/fonts/_google-fonts.scss

    //
    // خطك المخصص - الوصف
    //

    @font-face {
    font-family: 'Your Font Name';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../../fonts/your-font-name/your-font-name-400.woff2") format('woff2');
    }

    @font-face {
    font-family: 'Your Font Name';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../../fonts/your-font-name/your-font-name-700.woff2") format('woff2');
    }
  3. حدد في ملف .env:

    REACT_APP_FONT_FAMILY=Your Font Name

إرشادات وزن الخط:

  • 300 - خفيف (اختياري، للعناوين الدقيقة)
  • 400 - عادي (مطلوب، نص افتراضي)
  • 500 - متوسط (اختياري، للتأكيد)
  • 600 - شبه غامق (اختياري، العناوين الفرعية)
  • 700 - غامق (مطلوب، العناوين والنصوص القوية)

ملاحظة: تظل جميع الخطوط مستضافة محليًا وتعمل دون اتصال. لا حاجة إلى CDN خارجي أو اتصال بالإنترنت.

الخدمات الخارجية

REACT_APP_GOOGLE_API_KEY=your_google_maps_api_key
REACT_APP_STRIPE_PUBLISHABLE_KEY=pk_test_...

الحقول:

  • REACT_APP_GOOGLE_API_KEY - مفتاح API لخرائط Google (للخرائط، الجغرافيا)
  • REACT_APP_STRIPE_PUBLISHABLE_KEY - مفتاح قابل للنشر لـ Stripe (للدفعات)

يجب أن تتطابق:

يجب أن يتطابق REACT_APP_STRIPE_PUBLISHABLE_KEY مع stripe.publishable_key في crm_config.yaml.

روابط سريعة لتطبيق الويب

REACT_APP_WEB_APP_1_NAME="GitHub"
REACT_APP_WEB_APP_1_URL="https://github.com"
REACT_APP_WEB_APP_1_ICON_PATH="resources/webapp_icons/github.png"

الغرض: تكوين ما يصل إلى 6 روابط سريعة لتطبيقات الويب في واجهة المستخدم.

النمط:

  • REACT_APP_WEB_APP_N_NAME - اسم العرض
  • REACT_APP_WEB_APP_N_URL - عنوان URL المستهدف
  • REACT_APP_WEB_APP_N_ICON_PATH - مسار ملف الأيقونة (نسبي إلى public/)

أمثلة على الأيقونات: GitHub، Xero، Monday.com، Gmail، MailJet، Slack

تكامل Grafana

REACT_APP_GRAFANA_URLS=http://grafana1.local/d/abc,http://grafana2.local/d/xyz
REACT_APP_GRAFANA_LABELS=Network Monitoring,Service Health
REACT_APP_GRAFANA_API_KEY=your_grafana_api_key

الحقول:

  • REACT_APP_GRAFANA_URLS - قائمة مفصولة بفواصل لعناوين URL لوحات معلومات Grafana
  • REACT_APP_GRAFANA_LABELS - قائمة مفصولة بفواصل بأسماء لوحات المعلومات
  • REACT_APP_GRAFANA_API_KEY - مفتاح API لـ Grafana للتضمين

الاستخدام: يدمج لوحات معلومات Grafana في صفحة لوحة معلومات OmniCRM.

روابط الدعم

REACT_APP_FAQS_URL=https://support.yourcompany.com/faqs
REACT_APP_SUPPORT_URL=https://support.yourcompany.com

الغرض: روابط لموارد الدعم الخارجية تظهر في واجهة المستخدم.

تسجيلات الدخول الاجتماعية

REACT_APP_ALLOW_SOCIAL_LOGINS=yes

الخيارات:

  • yes - تمكين أزرار تسجيل الدخول الاجتماعي (Google، Facebook، إلخ)
  • no - تعطيل تسجيلات الدخول الاجتماعية

ملاحظة: يجب تكوين مزودي تسجيل الدخول الاجتماعي بشكل منفصل.

تكوين الشحن وإعادة الشحن

REACT_APP_TOPUP_PRICE_PER_DAY=10

الغرض: يحدد السعر اليومي لخدمات الشحن/إعادة الشحن في بوابة الرعاية الذاتية.

الحقول:

  • REACT_APP_TOPUP_PRICE_PER_DAY - السعر اليومي لخدمات إعادة الشحن (قيمة عددية)

مثال: إذا تم تعيينه على 10 وكانت العملة بالدولار الأمريكي، يدفع العملاء $10 لكل يوم خدمة.

ملاحظة: يجب أن تتطابق هذه القيمة مع تكوين الأسعار الخلفية. انظر features_topup_recharge للحصول على تفاصيل الإعداد الكاملة.

تطبيق تغييرا�� التكوين

الخلفية (crm_config.yaml)

  1. تحرير OmniCRM-API/crm_config.yaml
  2. حفظ التغييرات
  3. إعادة تشغيل خدمة واجهة برمجة التطبيقات:
cd OmniCRM-API
sudo systemctl restart omnicrm-api
# أو
./restart_api.sh

تدخل التغييرات حيز التنفيذ على الفور بعد إعادة التشغيل.

الواجهة الأمامية (.env)

  1. تحرير OmniCRM-UI/.env
  2. حفظ التغييرات
  3. إعادة بناء واجهة المستخدم:
cd OmniCRM-UI
npm run build
  1. إعادة تشغيل خدمة واجهة المستخدم أو خادم الويب

وضع التطوير:

أثناء التطوير باستخدام npm start، أعد تشغيل خادم التطوير لتطبيق التغييرات.

أفضل ممارسات التكوين

الأمان

  • لا تقم أبداً بإرسال الأسرار - استخدم .gitignore لملفات التكوين التي تحتوي على بيانات الاعتماد
  • استخدم تكوينات خاصة بالبيئة - فصل تكوينات التطوير/الاختبار/الإنتاج
  • قم بتدوير الأسرار بانتظام - تحديث أسرار JWT، مفاتيح API بش��ل دوري
  • حدد أذونات مفاتيح API - تعيين الأدوار الضرورية فقط
  • استخدم قائمة IP البيضاء بحذر - تفضل مفاتيح API لأمان أفضل

الصيانة

  • وثق التغييرات - احتفظ بسجل التغييرات لتعديلات التكوين
  • نسخ احتياطي للتكوينات - تخزين نسخ قبل التغييرات الكبيرة
  • اختبار في بيئة الاختبار - تحقق من تغييرات التكوين قبل النشر في الإنتاج
  • تحكم في الإصدارات - تتبع قوالب التكوين (بدون أسرار) في git

الأداء

  • استخدم قاعدة بيانات محلية - تجنب قاعدة بيانات بعيدة للحصول على أداء أفضل
  • تكوين التخزين المؤقت - تمكين تخزين OCS إذا كان متاحًا
  • تحسين Grafana - تقليل عدد لوحات المعلومات المدمجة

العلامة التجارية

  • مطابقة الألوان - تأكد من أن ألوان واجهة المستخدم تكمل شعارك
  • اختبار التباين - تحقق من قابلية قراءة النص على الخلفيات الملونة
  • اختبا�� الجوال - تحقق من العلامة التجارية على الأجهزة المحمولة
  • موضع الشعار - ضع شعارات الشركة في OmniCRM-UI/public/resources/

استكشاف الأخطاء وإصلاحها

التغييرات لم تُطبق

  • السبب: لم يتم إعادة تشغيل الخدمة أو إعادة بناء واجهة المستخدم
  • الإصلاح: إعادة تشغيل خدمات واجهة برمجة التطبيقات/واجهة المستخدم بعد تغييرات التكوين

أخطاء صياغة YAML

  • السبب: تنسيق YAML غير صالح (التحجيم، الاقتباسات، إلخ)
  • الإصلاح: تحقق من صحة YAML عبر الإنترنت أو استخدم yamllint crm_config.yaml

فشل اتصال قاعدة البيانات

  • السبب: بيانات اعتماد خاطئة أو الخادم غير متاح
  • الإصلاح: تحقق من أن قاعدة البيانات تعمل، وأن بيانات الاعتماد صحيحة

مدفوعات Stripe لا تعمل

  • السبب: مفاتيح غير متطابقة بين الخلفية والواجهة الأمامية
  • الإصلاح: تأكد من تطابق publishable_key في كلا ال��لفين

البريد الإلكتروني لا يُرسل

  • السبب: بيانات اعتماد Mailjet غير صالحة أو معرفات القوالب
  • الإصلاح: تحقق من مفتاح/سر Mailjet، تحقق من وجود معرفات القوالب

الوثائق ذات الصلة

  • administration_api_keys - إدارة مفاتيح API
  • integrations_stripe - إعداد دفع Stripe
  • integrations_mailjet - تكامل البريد الإلكتروني
  • concepts_api - مصادقة واجهة برمجة التطبيقات
  • rbac - التحكم في الوصول القائم على الأدوار