كيفية تمكين حقل "حل" برمجياً لكل فئة

مرحباً، لقد قمنا بتثبيت إضافة “Solved” ونقوم بإنشاء فئات برمجيًا باستخدام نص بايثون، ونريد تعيين حقول إعداد الفئة هذه على “True”. أثناء تشغيل النص البرمجي، يذكر أنه تم التحديث بنجاح ولكن عندما نتحقق من حقل إعداد هذه الفئة - لم يتم تعيينه على “True” ولا يزال على “False”. كيف يمكن تصحيح هذا الخطأ وإصلاحه؟

إعجابَين (2)

أنا أتبع دائمًا Reverse engineer the Discourse API لمثل هذه الأسئلة.

5 إعجابات

من ما أعرفه، إذا كنت تقوم بإنشاء فئات باستخدام نص برمجي، أفترض أنك تستخدم JSON لإضافة الفئات. ستحتاج إلى إجراء بعض التغييرات على نقطة النهاية والنص البرمجي. يمكنك أيضًا الرجوع إلى هذه الوثائق: واجهة برمجة تطبيقات فئات Discourse.

ومع ذلك، Discourse أداة قوية. يمكنك الاطلاع على هذا الدليل: الهندسة العكسية لواجهة برمجة تطبيقات Discourse. نظرًا لأن Discourse مدعوم بواجهة برمجة تطبيقات JSON كاملة، يمكنك إجراء هندسة عكسية لها وإجراء التعديلات اللازمة وجعلها تعمل كما هو مطلوب.

تلميح سريع:

  • غيّر إعداد “تم الحل” المطلوب يدويًا في واجهة المستخدم.
  • افحص طلبات الشبكة التي يقوم بها المتصفح لتحديد نقطة نهاية واجهة برمجة التطبيقات الدقيقة، وطريقة الطلب (مثل PUT)، والحمولة.

في نص برمجي بايثون سيبدو شيئًا كهذا:

payload = {
        "enable_solved": True  # اضبط هذا
    }

    response = requests.put(url, headers=headers, json=payload)
    if response.status_code == 200:
        print("تم تحديث الفئة")
    else:
        print(f"فشل: {response.status_code} - {response.text}")

update_category_settings(category_id=123)

ملاحظة: لست متأكدًا تمامًا من هذا، لكنني قمت مؤخرًا ببناء بعض النصوص البرمجية، لذا يعتمد هذا الرد على الأشياء التي صادفتها حتى الآن. :slightly_smiling_face:

شكراً لك يا ميهير، لقد ساعد ذلك في حل هذه المشكلة. أقدر مدخلاتك واقتراحاتك.

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

شكرا لك يا توماس على لفت انتباهي إلى هذا النهج.

يسرني أن ذلك قد ساعد :slight_smile: