Ieri ho avviato un argomento (ora chiuso) riguardo all’invocazione programmatica del plugin Merge Users, e Rafael gentilmente mi ha rimandato alle note di rilascio, che menzionano il fatto che il plugin ora dispone di un’interfaccia utente (Discourse 2.5.0.beta3 Release Notes). Purtroppo, le mie competenze con l’API di Discourse non sono tali da permettermi di tradurre questa informazione in una chiamata API. Si tratta di un’operazione che dovremo eseguire regolarmente dalla nostra applicazione. Potresti aiutarmi, per favore?
Grazie per il consiglio! Ci ho messo un po’ prima di riuscire a creare alcuni utenti nel mio sandbox Discourse, ma oggi ci sono riuscito. Ho preso spunto da quanto ho osservato nel pannello Network degli strumenti per sviluppatori e ho tentato di replicarlo tramite Postman. Ecco i valori:
Api-Key: {crealo tramite l'interfaccia utente}
Api-Username: system
context: /admin/users/{source user ID/{source username}
target_username: {nome utente di destinazione}
La risposta è stata:
{
"errors": [
"L'URL o la risorsa richiesta non è stata trovata."
],
"error_type": "not_found"
}
Sì, sia l’utente di origine che quello di destinazione sono utenti attivi. Se rimuovo gli header, ricevo una pagina HTML che dice: “Ops! Questa pagina non esiste o è privata.” La parte “questa pagina non esiste” è comprensibile per un errore 404, ma non sono sicuro di cosa significhi “privata” in questo contesto.
Sto migrando alcune mailing list a un’istanza di discourse. Poiché molte persone hanno utilizzato email diverse, il trasferimento crea molti utenti “staged” per persona reale. Vorrei automatizzare l’unione degli utenti tramite l’API.