Da es jetzt einen API-Aufruf für Merge Users gibt, wie wird dieser aufgerufen?

Hallo,

ich habe gestern ein Thema (jetzt geschlossen) zum programmatischen Aufrufen des Merge-Users-Plugins erstellt. Rafael hat mich freundlicherweise auf die Versionshinweise verwiesen, in denen erwähnt wird, dass das Plugin nun eine Benutzeroberfläche besitzt (Discourse 2.5.0.beta3 Release Notes). Leider sind meine Kenntnisse der Discourse-API nicht ausreichend, um dies in einen API-Aufruf umzusetzen. Dies müssen wir regelmäßig von unserer Anwendung aus durchführen. Können Sie mir dabei bitte helfen?

Vielen Dank im Voraus,

Mark Pemburn
Blue Ocean Ideas

Der Button ist am unteren Rand der Verwaltungsoberfläche eines Benutzers sichtbar.

image

Wenn du deine Browser-Entwicklertools während der Nutzung öffnest, siehst du die Anfrage, die gestellt werden muss.

Hallo Kane,

danke für den Tipp! Es hat eine Weile gedauert, bis ich in meiner Discourse-Sandbox einige Benutzer erstellen konnte, aber heute war es mir endlich möglich. Ich habe mir die Informationen aus dem Netzwerk-Panel der Entwicklertools geholt und versucht, dies über Postman nachzubilden. Hier sind die Werte:

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

Header:

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

Parameter:

Api-Key: {über die Benutzeroberfläche erstellen}
Api-Username: system
context: /admin/users/{source user ID}/{source username}
target_username: {Zielbenutzername}

Die Antwort war:

    {
        "errors": [
            "Die angeforderte URL oder Ressource konnte nicht gefunden werden."
        ],
        "error_type": "not_found"
    }

Hast du eine Idee, was ich falsch mache?

Auf den ersten Blick sehen alle korrekt aus. Hast du überprüft, ob der Wert für target_username existiert?

Kane,

Ja, sowohl der Absender als auch der Empfänger sind aktuelle Nutzer. Wenn ich die Header entferne, bekomme ich eine HTML-Seite zurück, die „Hoppla! Diese Seite existiert nicht oder ist privat.

@mpemburn Hatten Sie damit Erfolg?

Ich migriere einige Mailinglisten zu einer Discourse-Instanz. Da viele Leute unterschiedliche E-Mails verwendeten, erstellt die Übertragung viele gestellte Benutzer pro realer Person. Ich möchte das Zusammenführen von Benutzern über die API automatisieren.