Ich migriere mein Support-Forum von einem Helpdesk-System (YouTrack) zu Discourse.
Ich möchte die API nutzen, um Folgendes zu erledigen:
Benutzer (Name, Benutzername, E-Mail) aus YouTrack abrufen und entsprechende Benutzer in Discourse anlegen. Keine Passwörter setzen!
Allen diesen Benutzern eine Einladung senden, sich in Discourse anzumelden, unter Verwendung derselben Benutzernamen und E-Mail-Adressen (damit sie neue Passwörter festlegen können).
Bestimmte Themen, Anhänge und Kommentare aus YouTrack abrufen und in Discourse entsprechend anlegen.
Dafür müssen dieselben Benutzer in Discourse existieren, damit sie als Autoren von Themen und Kommentaren hinterlegt werden können. Dies ist unabhängig davon, ob diese Benutzer nach Erhalt der Einladung in Discourse angemeldet wurden oder nicht.
Probleme:
a) Laut API-Dokumentation ist das Feld “password” beim Anlegen eines Benutzers erforderlich. Wie kann ich das umgehen?
b) Welchen Status sollte ein solcher Benutzer haben (über die API angelegt, bereits mit Themen unter seinem Namen, aber noch nicht bestätigt und ohne gesetztes Passwort)?
Ich würde Benutzer, Kategorien, Themen und Beiträge lieber über ein Import-Skript anlegen als über die API.
Ich bin mir nicht ganz sicher, wie man am besten jeden einzelnen Benutzer per E-Mail erreicht, aber eine Möglichkeit wäre, das Import-Skript so zu konfigurieren, dass die Benutzer aktiviert werden und eine Zusammenfassung per E-Mail erhalten. Dabei sollte in der Zusammenfassungs-E-Mail auch stehen, wie man auf das neue Forum zugreifen kann.
Ich bin mir nicht ganz sicher, aber es scheint, als hättest du eine ungültige Gruppennummer und bekommst daher einen Fehler? Wenn der Benutzer hinzugefügt wird, würde das bedeuten, dass keine Gruppe bereits festgelegt ist.
Du könntest das Skript so ändern, dass es kein Passwort festlegt, denke ich. Allerdings ist ein zufälliges Passwort, das niemand kennt, praktisch dasselbe wie kein Passwort.
Wenn du Anpassungen benötigst und ein Budget hast, kann ich das wahrscheinlich noch heute erledigen.
Die Gruppennummer ist korrekt, ich habe sie aus /groups.json übernommen. Wie auch immer, mein aktuelles Ziel ist es, die Lösung mit den verfügbaren Werkzeugen zu finden. Trotzdem vielen Dank für dein Angebot und deine Hilfe!
Hmm. Vielleicht hat sich diese API geändert. Ich glaube, sie erwartet jetzt einen Gruppennamen. Du kannst gerne einen PR einreichen, wenn du eine Lösung findest.
Ich habe noch einiges auf meiner To-Do-Liste, bevor ich mir das genauer ansehen kann.
Nein. Wenn ich stattdessen den Gruppenamen anstelle der ID verwende, erhalte ich: {"status":404,"error":"Not Found"}
Es ist auch seltsam, dass die Fehlermeldung zwar nach user test6 created. . . Adding to group erscheint, der Benutzer aber tatsächlich nicht erstellt wurde.
Hmm. Nun, das Skript muss definitiv aktualisiert werden, um den API-Benutzer und den Schlüssel in einem Header statt in der URL zu senden. Zwar bin ich mir ziemlich sicher, dass es vor zwei Jahren funktioniert hat, aber es sieht so aus, als wäre es von jemandem geschrieben worden, der zwei Jahre weniger Erfahrung hat als ich heute.
Es wird keine Fehlerprüfung durchgeführt, um festzustellen, ob der Benutzer tatsächlich erstellt wurde. Das wäre etwas, was ich ändern würde, wenn ich daran arbeiten würde.
Es scheint, dass, wenn keine Gruppen vorhanden sind, der Versuch, den Benutzer zur Gruppe hinzuzufügen, übersprungen wird.
beide Gründe treffen zu. Wir wollten unseren Kunden Unterstützung auf einem offenen Forum bieten, damit die ganze Welt sehen kann, wie großartig wir sind Und YouTrack war aus mehreren Gründen nicht das richtige Werkzeug dafür, und die Tatsache, dass es pro Nutzer berechnet wird, ist einer davon.
Unsere aktuelle Einrichtung sieht wie folgt aus:
Discourse für Support, Feature-Requests und Diskussionen. Die „Kontaktieren Sie uns"-Formulare auf unseren Websites landen ebenfalls dort (neue Themen und „gestaffelte" Benutzer werden automatisch über die API erstellt)
YouTrack für die Entwicklung – Aufgaben, Fehler und andere Probleme
Confluence für allgemeine Dokumentation. Einige Artikel, die spezifische Anwendungsfälle beschreiben, werden auch manuell auf Discourse veröffentlicht
Wir haben auch versucht, Discourse als Unternehmensblog zu nutzen, bevorzugen jedoch später Hashnode.
Vielen Dank, Dmitry. Diese Erfahrung wird für uns nützlich sein.
Wir stehen kurz vor der Migration der Dokumentation von Confluence. Confluence hat eine schwache Suchfunktion und teure Lizenzkosten. YouTrack verfügt über eine Wissensdatenbank mit Markdown-Unterstützung. Zudem bietet es einen einfachen Import, und die Suchfunktion ist akzeptabel. YouTrack ist unser Bugtracking-System, das wir beibehalten werden.
Falls du bestätigen kannst, dass die YouTrack-Wissensdatenbank in der Produktion langsam ist, könnten wir in Betracht ziehen, sie nicht zu verwenden.
Discourse wird als Support-System der dritten Ebene eingesetzt. Die Hauptaufgabe besteht darin, Kundenlösungen zu speichern und bewährte Praktiken zu teilen. Leider ist die Nutzung von Discourse für Kunden schwierig, da das Kundendienstteam einen Service Desk verwendet. Außerdem ist es zu aufwendig, hunderte private Kategorien für jeden Kunden anzulegen.