Ora che esiste una chiamata API per Merge Users, come si chiama?

Ciao,

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 in anticipo,

Mark Pemburn
Blue Ocean Ideas

Il pulsante è visibile nella parte inferiore della pagina di amministrazione dell’utente.

image

Se apri gli strumenti per sviluppatori del browser mentre lo utilizzi, vedrai la richiesta che deve essere effettuata.

Ciao Kane,

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:

Metodo: POST
Endpoint: https://my-discourse-sandbox/admin/users/{source user ID}/merge.json

Intestazioni:

Content-Type: multipart/form-data
Accept: application/json

Parametri:

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

Hai idea di cosa stia sbagliando?

A prima vista sembrano tutti corretti. Hai controllato che il valore di target_username esista?

Kane,

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.

Mark

@mpemburn hai avuto successo con questo?

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.