إنشاء مستخدمين بدون كلمات مرور عبر واجهة برمجة التطبيقات

أنا أقوم بنقل منتدى الدعم الخاص بي إلى Discourse من نظام مساعدة (YouTrack).
أود استخدام واجهة برمجة التطبيقات (API) للقيام بما يلي:

  1. استرجاع المستخدمين (الاسم، اسم المستخدم، البريد الإلكتروني) من YouTrack وإنشاء مستخدمين مماثلين في Discourse. دون تعيين كلمات مرور لهم!
  2. إرسال دعوة لجميع هؤلاء المستخدمين للتسجيل في Discourse، باستخدام أسماء المستخدمين والبريد الإلكتروني نفسها (لإنشاء كلمات مرور جديدة).
  3. استرجاع بعض المواضيع والمرفقات والتعليقات من YouTrack وإنشاء ما يعادلها في Discourse.
    ولتحقيق ذلك، سأحتاج إلى وجود نفس المستخدمين في Discourse حتى يمكن تعيينهم كمؤلفين للمواضيع والتعليقات. يجب القيام بذلك بغض النظر عما إذا كان هؤلاء المستخدمون قد سجلوا في Discourse بعد استلام الدعوة أم لا.

المشاكل:
a) تشير وثائق واجهة برمجة التطبيقات إلى أن حقل “كلمة المرور” مطلوب عند إنشاء مستخدم. كيف يمكنني تجاوز ذلك؟
b) ما الذي يجب أن يكون عليه حالة هذا المستخدم (الذي تم إنشاؤه عبر واجهة برمجة التطبيقات، ولديه بالفعل بعض المواضيع باسمه، لكنه لم يؤكد حسابه بعد، ولم يتم تعيين كلمة مرور له)؟

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

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

مع ماذا يعمل هذا السكربت؟ مباشرة مع قاعدة البيانات؟

شاهد نصوص الاستيراد في scripts/import.

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

 ./create-user 'Test User Four' me@[domain] test4 41 default
Creating user: test4 user test4 created. .  . Adding to group 41. . . {"errors":["You supplied invalid parameters to the request: usernames"],"error_type":"invalid_parameters"}

لا أستطيع معرفة ما الذي فعلته خطأ. أيضًا، هل من الممكن عدم تعيين المجموعة وكلمة المرور هنا؟

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

يمكنك تعديل السكربت لعدم تعيين كلمة مرور، أعتقد، لكن تعيين كلمة مرور عشوائية لا يعرفها أحد هو في الغالب نفس الشيء مثل عدم وجود كلمة مرور.

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

رقم المجموعة صحيح، لقد أخذته من /groups.json. على أي حال، هدفي الحالي هو إيجاد الحل باستخدام أي أدوات متاحة. شكرًا لك على عرضك ومساعدتك!

همم. ربما تغيرت هذه الـ API. أعتقد أنها ستقبل الآن اسم المجموعة. أنت مدعو لتقديم طلب دمج (PR) إذا توصلت إلى حل.

لدي الكثير من الأمور في قائمتي قبل أن أتمكن من إلقاء نظرة أعمق على هذا.

لا. إذا استخدمت اسم المجموعة بدلاً من المعرف، أحصل على
{"status":404,"error":"Not Found"}

ومن الغريب أيضًا أنه على الرغم من ظهور رسالة الخطأ بعد تم إنشاء المستخدم test6. . . إضافة إلى المجموعة، فإن المستخدم لم يتم إنشاؤه فعليًا.

حسناً، يبدو أن السكربت يحتاج بالتأكيد إلى تحديث لإرسال اسم المستخدم والمفتاح الخاص بـ API في رأس الطلب (header) بدلاً من تضمينهما في الرابط. ورغم أنني متأكد من أنه كان يعمل قبل عامين، إلا أنه يبدو أنه كُتب من قبل شخص كان أملك من الخبرة بسنتين أقل مما أملكه الآن. :wink:

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

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

مرحبًا ديمتري @dm.linov!

عثرتُ على هذا الموضوع أثناء البحث عن أي طريقة للانتقال بين Confluence وYoutrack وDiscourse.

هل يمكنك مشاركة النقاط الرئيسية حول الانتقال من Youtrack إلى Discourse؟ هل كان السبب يتعلق بالتكلفة أو الأداء أو مشاكل البحث؟

مرحبًا أيڤان،

كلا السببين صحيحان. أردنا تقديم الدعم لعملائنا عبر منتدى مفتوح، حتى يتمكن العالم أجمع من رؤية مدى روعتنا :-). ولم يكن YouTrack أداة مناسبة لذلك لعدة أسباب، ومن بينها أنه يفرض رسومًا حسب عدد المستخدمين.

إعدادنا الحالي هو كالتالي:

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

كما جربنا استخدام Discourse كمدونة لشركة، لكننا فضلنا لاحقًا Hashnode.

شكرًا لك، دميتري. ستكون هذه التجربة مفيدة لنا.

نحن على وشك نقل التوثيق من Confluence. فله وظيفة بحث ضعيفة ورسوم دفع مرتفعة. يتمتع Youtrack بميزة قاعدة معرفة مع دعم للـ Markdown. كما أنه يتميز باستيراد سهل، ووظيفة البحث مقبولة. يُعد Youtrack نظام تتبع الأخطاء الخاص بنا، وسنحتفظ به.

إذا كنت قادرًا على تأكيد أن قاعدة المعرفة في YT بطيئة في بيئة الإنتاج، فيمكننا النظر في عدم استخدامها.

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

على أي حال، يُعد Discourse رائعًا بشكل عام :slight_smile:.

بحسب علمي، لم نستخدم قاعدة معرفة يوتيوب من قبل، لذا لا يمكنني القول شيئًا عنها. أما بخصوص كونفلوينس، فنحن أيضًا نبحث حاليًا عن بديل لها :slight_smile: لكن دون عجلة.

هل جربت Discourse للفرق؟

@blake ليس بعد، سأفحصه، شكرًا لك!

قد يكون من الجدير بالنظر في استخدام Discourse for Teams بالاقتران مع Google Currents. :speech_balloon: