حذف مستخدم عبر واجهة برمجة التطبيقات Discourse

يمكن حذف حسابات المستخدمين عبر واجهة برمجة تطبيقات Discourse أيضًا.

على سبيل المثال؛

DELETE /admin/users/{id}.json HTTP/1.1

Content-Type: application/json
Api-Username: system
Api-Key: 1234*******

{
  "delete_posts": true,
  "block_email": false,
  "block_urls": false,
  "block_ip": false
}
  • تم تبسيط الطلب لسهولة القراءة.

كما ترى، تسمح خيارات الحمولة بحذف المنشورات التي أنشأها المستخدم في نفس الطلب، بدلاً من حذف المنشورات قبل حذف الحساب عند حذف الحسابات يدويًا في صفحة المسؤول.


ومع ذلك، أحصل على خطأ 403 “تم رفض الوصول” لهذا الطلب، على الرغم من أن مفتاح واجهة برمجة التطبيقات لديه نطاق عالمي، والمستخدم هو system:

{
  "errors": ["You are not permitted to view the requested resource."],
  "error_type": "invalid_access"
}

هل يعمل إذا قمت بتغيير قيم الإعدادات المذكورة في الدليل؟ قد تمنع القيم الافتراضية حذف المستخدم. لست متأكدًا بنسبة 100%.

لست متأكدًا من تفاصيل المستخدم الذي تحاول حذفه، ولكن الخطأ الذي تراه من المحتمل أن ينبع من عدم استيفاء واحد أو أكثر من الشيكات التالية.

على الأرجح، هو شيء ما في كتلة else. ونعم، أتفق معك، يمكن بالتأكيد أن تكون رسالة الخطأ أقل غموضًا :grimacing:.

4 إعجابات

أحسنت يا @selase! يبدو أن لدى المستخدم الخاص بي عدد منشورات أكثر من User::MAX_STAFF_DELETE_POST_COUNT وبعضها أقدم من SiteSetting.delete_user_max_post_age :slight_smile:

  • delete_user_max_posts: يجب أن يكون قد تم تغيير اسمه إلى delete_user_self_max_post_count منذ نشر المقال. تم تعيينه على 1 (الافتراضي)

    الحد الأقصى لعدد المنشورات التي يمكن للمستخدم امتلاكها مع السماح بحذف الحساب بنفسه. تم تعيينه على -1 لتعطيل حذف الحساب بنفسه.

  • تم تعيين delete_user_max_post_age على 60 (الافتراضي)، ولدى المستخدم منشورات يزيد عمرها عن 60 يومًا.

    لا تسمح بحذف المستخدمين الذين يزيد عمر أول منشور لهم عن (x) أيام.

  • تم تعيين delete_all_posts_max على 15 (الافتراضي)، ولدى المستخدم 12 منشورًا

    الحد الأقصى لعدد المنشورات التي يمكن حذفها دفعة واحدة باستخدام زر حذف جميع المنشورات. إذا كان لدى المستخدم أكثر من هذا العدد من المنشورات، فلا يمكن حذف جميع المنشورات دفعة واحدة ولا يمكن حذف المستخدم.

بمجرد أن قمت بإزالة القيود، تمكنت من حذف المستخدم الخاص بي عبر استدعاء API.

{"deleted":true}

:grin:

وربما يمكن أيضًا ذكر هذا المتطلب في وثائق API؟

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.