SocialHub.AI
مركز المطورين · قابلية التوسع المفتوحة

الكائنات المخصصة API

يمكن لمساحة العمل تعريف كائنات أعمالها المهيكلة الخاصة بها - مثل مهام الإصلاح، والمواعيد، والشكاوى - مع الحقول، والسجلات، وواجهة المستخدم (قوائم/نماذج)، والتقسيم، كل ذلك بدون كتابة أي كود. يتيح هذا API لعمليات التكامل قراءة مخططات هذه الكائنات وقراءة سجلاتها أو كتابتها. يتم تعريف object داخل التطبيق أولاً؛ بينما يعمل API على ما هو موجود بالفعل.

الخطوة 1 - اكتشف

اذكر أنواع object، ثم اقرأ مخططها.

قم بالمصادقة باستخدام Bearer fl_live_ مفتاح السيارة objects:read. GET /api/v2/objects يعيد object أنواع البيانات التي تعرضها مساحة العمل هذه — فقط نُشر، API-مرئي يتم إرجاع الكائنات؛ المسودات و API- لا تتسرب العناصر المخفية أبدًا. GET /api/v2/objects/{type} يعود واحد objectمخطط الحقول ذاتي الوصف (المفتاح، النوع، الخيارات، المطلوب) يسمح لك بعرض نموذج أو ربط السجلات دون الحاجة إلى كتابة أي شيء بشكل ثابت. يُرجع نوع غير معروف، أو مسودة، أو مخفي، أو نوع متعدد مساحات العمل 404.

# what object types exist here?
curl https://flash.socialhub.ai/api/v2/objects \
  -H "Authorization: Bearer fl_live_..."
# { "data": [ { "type": "repair_jobs", "label": "Repair Jobs", ... } ] }

# what does one look like?
curl https://flash.socialhub.ai/api/v2/objects/repair_jobs \
  -H "Authorization: Bearer fl_live_..."
# { "data": {
#     "type": "repair_jobs", "label": "Repair Jobs",
#     "fields": [
#       { "key": "cf_status",  "type": "enum", "required": true,
#         "options": ["Received","In Progress","Completed"] },
#       { "key": "cf_item",    "type": "text" },
#       { "key": "member_ref", "type": "member_ref" }
#     ]
# } }
الخطوة 2 - قراءة السجلات

عرض القوائم، والتصفية، والفرز، والترقيم

GET /api/v2/objects/{type}/records يُعيد سجلات object (نطاق objects:read). صفحة تحتوي على limit (بحد أقصى 200) وoffset؛ الترتيب باستخدام sortBy (created_desc، created_asc، updated_desc، title_asc)؛ نص حر search؛ تصفية لعرض عضو باستخدام memberId؛ وتصفية أي حقل باستخدام f_<fieldKey>=<value>. السجل الواحد هو GET /api/v2/objects/{type}/records/{recordId}.

curl "https://flash.socialhub.ai/api/v2/objects/repair_jobs/records\
?f_cf_status=In%20Progress&sortBy=updated_desc&limit=50" \
  -H "Authorization: Bearer fl_live_..."

# { "data": [ { "id": "rec_...", "data": { "cf_status": "In Progress",
#               "cf_item": "Sole replacement", "member_ref": "mbr_..." } } ],
#   "total": 12 }
الخطوة 3 - كتابة السجلات

إنشاء، تحديث، حذف

تتطلب عمليات الكتابة نطاق objects:write. يتم التحقق من صحة data object مقارنةً بمخطط حقول object — حيث يتم فحص الحقول المطلوبة، والأنواع، وخيارات التعداد، ومراجع الأعضاء، ويتم رفض المفاتيح غير المعروفة. يوجد حاجز أمان لمعدل الكتابة لكل مفتاح، يعمل على إغلاق كل عملية كتابة، بحيث لا يمكن لمفتاح مُسرّب أن يُغرق الجدول.

# create
curl -X POST https://flash.socialhub.ai/api/v2/objects/repair_jobs/records \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": {
    "cf_status": "Received",
    "cf_item": "Sole replacement",
    "member_ref": "mbr_..."
  } }'
# 201 { "data": { "id": "rec_...", "data": { ... } } }

PATCH …/records/{recordId} هو تحديث جزئي افتراضيًا (تم دمج الحقول واحدة تلو الأخرى، بحيث لا تتعارض التصحيحات المتزامنة مع بعضها البعض). أرسل حقلاً كـ null لإزالته، أو { "replace": true } لاستبدال السجل بأكمله. DELETE …/records/{recordId} حذف مؤقت.

# partial update — only touch cf_status
curl -X PATCH https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": { "cf_status": "Completed" } }'

# delete
curl -X DELETE https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..."