Come posso aggiornare gli utenti tramite API usando l'ID utente (non il nome utente)?

Vorrei che la mia applicazione aggiornasse l’account Discourse collegato dei miei utenti: in particolare il nome visualizzato e i gruppi di cui l’utente è membro (ad esempio, quando viene promosso nella mia applicazione, viene aggiunto anche a un altro gruppo del forum).

Mi aspettavo di memorizzare un riferimento “discourse member id” nella tabella degli utenti della mia applicazione e utilizzarlo per effettuare aggiornamenti, ad esempio POST /users/{id}.json con un payload come {"name": "nuovo nome"}. Ma sembra che tutti gli endpoint API richiedano un username invece di un id.

Non capisco perché questo sia lo standard predefinito: gli utenti non possono cambiare il proprio nome utente? Sembra che questo potrebbe interrompere l’integrazione se lo facessero.

Come posso apportare modifiche del genere in modo affidabile, utilizzando un identificatore coerente (come id)?

2 Mi Piace

Per ora, penso che la tua migliore opzione sia effettuare due richieste API. Una per recuperare l’utente tramite ID al fine di ottenere il nome utente, e la seconda richiesta per aggiornare tramite nome utente.

Esiste un’opzione per aggiornare un utente tramite external_id, ma non credo che possa essere utilizzata senza l’abilitazione del single-sign-on; in questo modo, Discourse memorizza l’ID dell’utente della tua applicazione invece del contrario.

2 Mi Piace

Grazie, ho avuto una simile intuizione dopo aver pubblicato.

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.