external_id über API verwenden

Hallo,

Ich möchte einen Benutzer über die API mit einer externen ID erstellen und abrufen. Die externe ID wäre eine Ganzzahl, die sich auf eine ID in unserer internen Datenbank bezieht. Dies hat nichts mit SSO zu tun.

Ich folge der Dokumentation, aber es scheint nicht zu funktionieren. Ich kann den Benutzer erstellen, aber ich kann ihn nicht über die externe ID abrufen. Die Create User API zeigt nur an, dass die Anfrage ein external_ids-Objekt hat, aber keine weiteren Informationen darüber, wie der Inhalt des Objekts aussehen soll. Ich habe die Community durchsucht und nur dieses Thema gefunden, aber es war keine große Hilfe.

Ich versuche, den Benutzer mit der folgenden GET-Anfrage abzurufen:

https://our_domain.discourse.group/u/by-external/7000.json

aber es gibt einen 404 und die folgende Antwort:

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

Im Folgenden finden Sie Beispiele für einige der von mir versuchten Create User-Anfragen. Die Benutzer werden erfolgreich erstellt, ich kann sie nur nicht über die externe ID abrufen. (Nebenbemerkung: Gibt es auch eine Möglichkeit, die externe ID eines Benutzers anzuzeigen?):

{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": 7000
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": "7000"
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": {
        "external_id": 7000
    }
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": [
        7000
    ]
}

Ist DiscourseConnect auf Ihrer Website aktiviert? Wenn nicht, müssen Sie den Anbieternamen Ihres Authentifikators finden und diesen in der Anfrage verwenden. Einige Details dazu finden Sie hier: Finding a user by their identity provider 'external ID'.

Vielen Dank für Ihre Antwort.

Ich denke, das bedeutet, dass wir external_id nicht verwenden können, da wir DiscourseConnect nicht aktivieren möchten. Wir möchten die Discourse-Authentifizierung nicht ersetzen.

Wir werden den Benutzer wahrscheinlich über die API erstellen müssen, dann die Discourse user.id in unserem System speichern und auf diese Weise darauf verweisen.

1 „Gefällt mir“