الآن بعد وجود استدعاء API لدمج المستخدمين، كيف يمكن استدعاؤه؟

مرحباً،

لقد بدأت موضوعاً بالأمس (تم إغلاقه الآن) حول استدعاء إضافة “دمج المستخدمين” برمجياً، وأحسنت إليّ رافائيل بالإحالة إلى ملاحظات الإصدار، والتي تذكر أن الإضافة أصبحت الآن تحتوي على واجهة مستخدم (Discourse 2.5.0.beta3 Release Notes). للأسف، لا تملك مهاراتي في واجهة برمجة تطبيقات Discourse ما يكفي لترجمة ذلك إلى استدعاء API. هذا شيء سنحتاج إلى القيام به من تطبيقنا بشكل متكرر. هل يمكنك مساعدتي، من فضلك؟

شكراً مقدماً،

مارك بيمبرن
بلو أوشن إديز

يظهر الزر في أسفل صفحة إدارة المستخدم.

image

إذا فتحت أدوات مطور المتصفح أثناء استخدامه، فسترى الطلب الذي يجب إرساله.

مرحبًا كان،

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

الطريقة: POST
نقطة النهاية: https://my-discourse-sandbox/admin/users/{معرف المستخدم المصدر}/merge.json

الترويسات:

Content-Type: multipart/form-data
Accept: application/json

المعاملات:

Api-Key: {إنشاء عبر واجهة المستخدم}
Api-Username: system
context: /admin/users/{معرف المستخدم المصدر/{اسم المستخدم المصدر}
target_username: {اسم المستخدم الهدف}

كان الرد:

    {
        "errors": [
            "تعذر العثور على عنوان URL أو المورد المطلوب."
        ],
        "error_type": "not_found"
    }

هل لديك أي فكرة عما أفعله خطأ؟

كلها تبدو صحيحة للوهلة الأولى. هل تأكدت من وجود قيمة target_username؟

كين،

نعم، كل من المستخدم المصدر والهدف مستخدمون حاليون. إذا قمت بإزالة الرؤوس، أحصل على صفحة HTML تقول: “عفوًا! هذه الصفحة غير موجودة أو خاصة.” إن جزء “الصفحة غير موجودة” مفهوم في حالة خطأ 404، لكنني لست متأكدًا مما يعنيه “خاص” هنا.

مارك

هل نجحت في ذلك؟

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