Creazione di utenti senza password tramite API

Sto migrando il mio forum di assistenza da un helpdesk (YouTrack) a Discourse.
Vorrei utilizzare l’API per eseguire le seguenti operazioni:

  1. Recuperare gli utenti (nome, nome utente, e-mail) da YouTrack e creare utenti analoghi in Discourse. Non impostare le password per loro!
  2. Inviare un invito a tutti questi utenti per registrarsi su Discourse, utilizzando gli stessi nomi utente e indirizzi e-mail (affinché possano creare nuove password).
  3. Recuperare determinati argomenti, allegati e commenti da YouTrack e ricrearli in Discourse.
    Per fare ciò, sarà necessario che gli stessi utenti esistano in Discourse in modo che possano essere assegnati come autori di argomenti e commenti. Questo deve essere fatto indipendentemente dal fatto che tali utenti si siano registrati su Discourse dopo aver ricevuto l’invito o meno.

Problemi:
a) La documentazione dell’API indica che il campo “password” è obbligatorio quando si crea un utente. Come posso aggirare questo problema?
b) Qual dovrebbe essere lo stato di tale utente (creato tramite API, ha già alcuni argomenti sotto il suo nome, ma non è ancora stato confermato e non ha impostato la password)?

Creerei gli utenti, le categorie, gli argomenti e i post utilizzando uno script di importazione anziché l’API.

Non sono del tutto sicuro di quale sia il modo migliore per inviare un’email a ogni singolo utente, ma un approccio potrebbe essere quello di lasciare gli utenti attivati dallo script di importazione e permettere loro di ricevere un messaggio di riepilogo via email, in modo che notino che l’email di riepilogo include le istruzioni per accedere al nuovo forum.

Con cosa funzionerebbe uno script del genere? Direttamente con il database?

Dai un’occhiata agli script di importazione in scripts/import.

Ho provato a usare questo script tuo, che sembra funzionare, ma continuo a ricevere un messaggio di errore:

 ./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"}

Non riesco a capire cosa ho sbagliato. Inoltre, è possibile non impostare il gruppo e la password qui?

Non ne sono sicuro, ma sembra che tu abbia un numero di gruppo errato e stia ricevendo un errore? Se sta aggiungendo l’utente, allora sembra che non stia impostando un gruppo già esistente. :wink:

Potresti modificare lo script in modo che non imposti una password, penso, ma impostare una password casuale che nessuno conosce è praticamente la stessa cosa che non avere password.

Se hai bisogno di personalizzazioni e hai un budget, potrei farlo probabilmente più tardi oggi.

Il numero del gruppo è corretto, l’ho preso da /groups.json. Comunque, il mio obiettivo attuale è trovare la soluzione con gli strumenti disponibili. Grazie comunque per la tua offerta e il tuo aiuto!

Hmm. Forse quell’API è cambiata. Penso che ora richieda un nome di gruppo. Se trovi una soluzione, sei il benvenuto a inviare una PR.

Ho un bel po’ di cose da fare prima di poter dare un’occhiata più approfondita a questo.

No. Se uso il nome del gruppo invece dell’ID, ottengo
{"status":404,"error":"Not Found"}

È anche strano che, sebbene il messaggio di errore appaia dopo user test6 created. . . Adding to group, l’utente in realtà non viene creato.

Hmm. Beh, lo script deve assolutamente essere aggiornato per inviare l’utente e la chiave API in un’intestazione invece che nell’URL. Anche se sono abbastanza sicuro che funzionasse due anni fa, sembra che sia stato scritto da qualcuno con due anni di esperienza in meno rispetto a quella che ho ora. :wink:

Non esegue alcun controllo degli errori per verificare se l’utente viene effettivamente creato, quindi questo è qualcosa che cambierei se dovessi lavorarci.

Sembra che se non hai gruppi, lo script salti il tentativo di aggiungere l’utente al gruppo.

Ciao Dmitry @dm.linov!

Ho trovato questo argomento cercando approcci per spostarsi tra Confluence, Youtrack e Discourse.

Potresti condividere i tuoi punti principali riguardo al passaggio da Youtrack a Discourse? La ragione è stata il costo, le prestazioni o problemi di ricerca?

Ciao Ivan,

Entrambe le ragioni sono vere. Volevamo offrire supporto ai nostri clienti su un forum pubblico, in modo che tutto il mondo potesse vedere quanto siamo bravi :slight_smile: E YouTrack non era uno strumento adatto per questo per diversi motivi, tra cui il fatto che addebita una tariffa per utente.

La nostra configurazione attuale è la seguente:

  • Discourse per il supporto, le richieste di funzionalità e le discussioni. Anche i moduli “Contattaci” sui nostri siti web confluiscono lì (nuovi argomenti e utenti “in fase di staging” vengono creati automaticamente tramite API)
  • YouTrack per lo sviluppo: attività, bug e altri problemi
  • Confluence per la documentazione generale. Alcuni articoli che descrivono casi d’uso specifici vengono pubblicati anche su Discourse (manualmente)

Abbiamo anche provato a utilizzare Discourse come blog aziendale, ma in seguito abbiamo preferito Hashnode.

Grazie, Dmitry. Questa esperienza sarà utile per noi.

Stiamo per spostare la documentazione da Confluence. Ha una funzione di ricerca debole e costi elevati. Youtrack dispone di una funzione Knowledge Base con supporto per Markdown. Inoltre, offre un’importazione semplice e una funzione di ricerca accettabile. Youtrack è il nostro sistema di tracciamento dei bug e lo manterremo.

Se puoi confermare che la Knowledge Base di YT è lenta in produzione, potremmo valutare di non utilizzarla.

Discourse viene utilizzato come sistema di supporto di terzo livello. La funzione principale è salvare le soluzioni dei clienti e condividere le migliori pratiche. Purtroppo, l’utilizzo di Discourse da parte dei clienti è difficile. Il team di assistenza clienti utilizza infatti un Service Desk. Inoltre, è troppo complicato creare centinaia di categorie private per ogni cliente.

Comunque, Discourse è ottimo in generale :slight_smile:.

Per quanto ne so, non abbiamo mai utilizzato la Knowledge base di YT, quindi non posso dire nulla a riguardo.

Per quanto riguarda Confluence, stiamo anche cercando un’alternativa ora :slight_smile: ma senza fretta.

Hai dato un’occhiata a Discourse for teams?

@blake Non ancora, lo guarderò, grazie!

Potrebbe valere la pena considerare l’uso di Discourse for Teams in combinazione con Google Currents. :speech_balloon: