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

1 „Gefällt mir“

The button is visible at the bottom of a user’s administration page.

If you open your browser developer tools while using it, you will see the request that needs to be made.

6 „Gefällt mir“

Hi Kane,

Thanks for the tip! It took me a while to be able to create some users in my sandbox Discourse, but I was able to do so today. I took what I gleaned from the dev tools Network panel and attempted to duplicate it via Postman. These are the values:

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

Headers:

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

Params:

Api-Key: {create via the UI}
Api-Username: system
context: /admin/users/{source user ID/{source username}
target_username: {target username}

The response was:

    {
        "errors": [
            "The requested URL or resource could not be found."
        ],
        "error_type": "not_found"
    }

Any idea of what I’m doing wrong?

1 „Gefällt mir“

Those all look correct at a glance. Have you checked that the target_username value exists?

2 „Gefällt mir“

Kane,

Yes, both source and target are current users. If I remove the headers, I get back an HTML page that says “Oops! That page doesn’t exist or is private.” The “page doesn’t exist” part is understandable for a 404 error, but I’m not sure what “private” implies here.

Mark

1 „Gefällt mir“

@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.