Sto cercando di scrivere una funzione per importare tutti gli utenti esistenti dal nostro sito esterno (un servizio di terze parti, sto solo creando il middleware) e sto provando a usare la funzione createUser. Funziona bene, tranne per il parametro external_ids. Indipendentemente da ciò che invio (ho provato array, oggetti… hai capito), l’ID esterno non viene salvato ma l’utente viene creato. Nessun errore.
C’è un formato specifico per l’oggetto external_ids?
Ho visto la soluzione sso_sync ma preferirei non intraprendere quella strada, soprattutto perché il parametro external_ids è incluso nell’API.
Ho già configurato l’SSO e sono riuscito a reindirizzare dal sito di terze parti a Discourse, ma non ricordo alcun punto in cui definire il provider se non quando si definiscono i discourse connect provider secrets. Mi manca qualcosa?
Hmm, ok. Se stai usando DiscourseConnect, da una lettura del codice, sembra che tu non possa aggiungere l’external id durante la creazione. Il codice appena sopra gestisce solo gli account associati che sono diversi dall’SSO.
Puoi provare a effettuare due chiamate: la prima chiamata uguale a quella che hai ora, ma senza gli external ids, e una seconda chiamata a updateUser, includendo le informazioni sull’external id? Speriamo che funzioni.
Grazie per il tuo aiuto, e sì, sto usando DiscourseConnect, che è probabilmente il motivo per cui non funziona. Penso che questo sia l’approccio che dovrò adottare. O questo, oppure dovrò fare una seconda chiamata che effettua il login SSO dell’utente con l’ID esterno in modo che sia collegato alla sua email.
Modifica: Penso che anche updateUser avrà lo stesso problema poiché non ho un provider definito, quindi probabilmente il login SSO è la mia migliore opzione.
Quindi, solo per aggiornare e chiudere questo, l’unica soluzione che ha funzionato è stata eseguire sso_sync dopo aver creato un nuovo utente, e anche questo non è stato molto necessario perché una volta che l’utente tenta di accedere a discourse tramite SSO, la sincronizzazione avverrà comunque via email, a quanto pare.
Grazie a tutti coloro che hanno aiutato.