FlipLink

إدارة أعضاء الفريق

أعضاء الفريق

اسرد أعضاء الفريق في حسابك واقرأهم وأنشئهم وحدّثهم وفعّلهم وعطّلهم واحذفهم، بما في ذلك المجلّدات التي يقتصر عليها كل عضو.

الواجهات المُستخدَمة في هذا النقاش

هل من خطأ أو معلومة قديمة في هذا الدليل؟

ما الذي يمكنك فعله

أعضاء الفريق هم مستخدمو المورّد في حسابك. ويتيح لك الـ API إدارتهم من البداية إلى النهاية، والتحكّم في المجلّدات التي يقتصر عليها كل عضو (فالعضو لا يرى إلا الكتيّبات داخل المجلّدات المُسنَدة إليه). ولا تُعيد أيٌّ من نقاط النهاية هذه كلمات المرور أبدًا.

  • اسرد أعضاء الفريق في حسابك، مُصفّين بحسب حالة التفعيل.
  • اقرأ عضوًا واحدًا عبر مُعرّف العضو، بما في ذلك المجلّدات المُسنَدة إليه.
  • أنشئ أو حدّث عضوًا، بضبط اسمه، وبريده الإلكتروني، وكلمة مروره، وصورة ملفه الشخصي، ونطاق مجلّداته.
  • فعّل أو عطّل عضوًا، بالتحكّم فيما إذا كان يستطيع تسجيل الدخول.
  • احذف (حذف ناعم) عضوًا، فيُعطّله مع الحفاظ على سجلّه سليمًا.

قبل أن تبدأ

  • مفتاح API — يُرسَل في ترويسة X-Api-Key، أو ضمن Authorization: Bearer YOUR_API_KEY، مع كل طلب.
  • تذهب جميع الطلبات إلى الرابط الأساسي https://go.fliplink.me.
  • تأخذ عدة نقاط نهاية معطى المسار {memberId} — وهو مُعرّف عضو الفريق من قائمة أعضاء الفريق، لا مُعرّف كتيّب. وتمرير مُعرّف مجهول يُعيد خطأً تعتمد رسالته على نقطة النهاية: فـ Get Team Member يُعيد "Team member not found"، بينما يُعيد Set Team Member Active وDelete Team Member "Item not found".
  • تأخذ نقطتا الكتابة (set-team-member وset-team-member-active) جسمًا بصيغة form-urlencoded (لا JSON).

اسرد أعضاء الفريق

يسرد GET /api/list-team-members أعضاء الفريق في حسابك مع تفاصيل وصولهم، بما في ذلك المجلّدات المُسنَدة إلى كل عضو. صفِّ بحسب IsActive (1 = نشط، وهو الافتراضي؛ و0 = غير نشط).

curl -X GET 'https://go.fliplink.me/api/list-team-members?IsActive=1' \
  -H 'X-Api-Key: YOUR_API_KEY'

الاستجابة:

{
  "Result": "OK",
  "Items": [
    {
      "ID": 45452,
      "Name": "Jane Doe",
      "Email": "member@example.com",
      "IsActive": "True",
      "PhotoIMG": "",
      "Total": 0
    }
  ]
}

اجلب عضو فريق واحدًا

يُعيد GET /api/get-team-member/{memberId} عضوًا واحدًا عبر مُعرّف العضو — الاسم، والبريد الإلكتروني، وحالة التحقّق من البريد (IsEmailVerified)، والمجلّدات المُسنَدة إليه. ويُعاد العضو مُغلَّفًا داخل كائن Item، وFolders قائمة مفصولة بفواصل بالمجلّدات التي يمكنه الوصول إليها (فارغة = لا قيد مجلّدات). والـ memberId هو مُعرّف عضو الفريق من قائمة أعضاء الفريق — لا مُعرّف كتيّب.

curl -X GET 'https://go.fliplink.me/api/get-team-member/96216' \
  -H 'X-Api-Key: YOUR_API_KEY'

الاستجابة:

{
  "Result": "OK",
  "Item": {
    "ID": 45452,
    "Email": "member@example.com",
    "Name": "Jane Doe",
    "Phone": "",
    "PhotoIMG": "",
    "IsEmailVerified": false,
    "Folders": "Marketing,Sales"
  }
}

أنشئ عضو فريق أو حدّثه

يُنشئ POST /api/set-team-member عضو فريق جديدًا أو يحدّث عضوًا موجودًا، بالتحكّم فيمن يستطيع الوصول إلى حسابك، وعبر حقل Folders، في المجلّدات التي يقتصر عليها. أغفِل ID أو أرسِل -1 للإنشاء؛ وأرسِل ID أكبر من 0 للتحديث. وعند النجاح يُكتَب مُدخَل في سجلّ التدقيق. ويكون الجسم بصيغة form-urlencoded.

بعض الملاحظات من المواصفات:

  • اسم العضو حقل Name واحد — لا يوجد FirstName/LastName.
  • Folders قائمة مفصولة بفواصل بأسماء المجلّدات (مثل Marketing,Sales)؛ اتركها فارغة لعدم وجود قيد مجلّدات. ولا يستطيع العضو الوصول إلا إلى الكتيّبات داخل هذه المجلّدات.
  • Password نصّ عادي ويُشفَّر على جانب الخادم؛ وتركه فارغًا عند التحديث يُبقي كلمة المرور الحالية.
  • يجب ألّا يكون البريد الإلكتروني مملوكًا فعلًا لمستخدم FlipLink، وتُرفَض عناوين البريد ذات اللاحقة +.
curl -X POST 'https://go.fliplink.me/api/set-team-member' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  --data-urlencode 'Name=Jane' \
  --data-urlencode 'Email=jane@example.com' \
  --data-urlencode 'ID=-1' \
  --data-urlencode 'Password=' \
  --data-urlencode 'ProfileImage=' \
  --data-urlencode 'Folders='

الاستجابة (الإنشاء):

{
  "Result": "OK",
  "Message": "Team member created"
}

وعند تقديم ID (مسار التحديث)، تكون الرسالة "Updated successfully" بدلًا من ذلك.

فعّل عضو فريق أو عطّله

يفعّل PUT /api/set-team-member-active/{memberId} عضوًا أو يعطّله، بالتحكّم فيما إذا كان يستطيع تسجيل الدخول والوصول إلى الحساب. ويكون الجسم بصيغة form-urlencoded بحقل IsActive واحد.

curl -X PUT 'https://go.fliplink.me/api/set-team-member-active/96216' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  --data-urlencode 'IsActive=true'

الاستجابة:

{
  "Result": "OK",
  "Message": "Updated successfully"
}

احذف عضو فريق

الاستدعاء DELETE /api/delete-team-member/{memberId} هو حذف ناعم (تعطيل) — فأعضاء الفريق لا يُحذَفون حذفًا صلبًا أبدًا. فهو يعطّل العضو (اسم بديل REST لـ set-team-member-active مع IsActive=false). ويبقى سجلّ مدفوعاته ومراجع التدقيق سليمًا، ويمكن إعادة تفعيله لاحقًا عبر PUT /api/set-team-member-active (IsActive=true).

curl -X DELETE 'https://go.fliplink.me/api/delete-team-member/96216' \
  -H 'X-Api-Key: YOUR_API_KEY'

الاستجابة:

{
  "Result": "OK",
  "Message": "Team member deactivated"
}

الأخطاء المحتملة

  • مفتاح API مفقود أو غير صالح ← HTTP 401. تُعيد هذه الحالة صفحة HTML عادية لعدم التصريح — دون أي جسم JSON. تحقّق من وجود ترويسة X-Api-Key (أو Authorization: Bearer) وصحّتها. وينطبق ذلك على نقاط النهاية الخمس جميعها.
  • لا عضو فريق بذلك المُعرّف في Get Team Member (مثلًا، مرّرت مُعرّف كتيّب) ← HTTP 200 مع الرسالة Team member not found.
  • مُعرّف العنصر غير موجود أو غير مملوك لمفتاحك في Set Team Member Active وDelete Team Member ← HTTP 200 مع الرسالة Item not found.
  • حقل مجهول أو مكتوب خطأً في الجسم في Set Team Member وSet Team Member Active ← HTTP 200 مع الرسالة Unknown field(s) '…'. Expected: ….

ملاحظات

  • معطى المسار {memberId} هو دائمًا مُعرّف عضو الفريق من قائمة أعضاء الفريق — لا مُعرّف كتيّب أبدًا.
  • لا تُعيد أيٌّ من نقاط النهاية هذه كلمات المرور أبدًا.
  • يحصر Folders العضو في مجلّدات محدّدة؛ والقيمة الفارغة تعني عدم وجود قيد مجلّدات.