Utilisation de external_id via l'API

Bonjour,

Je souhaite créer et récupérer un utilisateur via l’API en utilisant un external_id. L’external_id serait un entier faisant référence à un ID dans notre base de données interne. Ceci n’est pas lié au SSO.

Je suis la documentation mais je n’arrive pas à faire fonctionner. Je peux créer l’utilisateur mais je ne peux pas le récupérer par external_id. L’API de création d’utilisateur montre juste que la requête doit avoir un objet external_ids mais sans plus d’informations sur ce que doit contenir l’objet. J’ai cherché dans la communauté et j’ai seulement trouvé ce sujet, mais il n’a pas été d’une grande aide.

J’essaie de récupérer l’utilisateur en utilisant la requête GET suivante :

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

mais cela renvoie un 404 et la réponse suivante :

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

Voici des exemples de certaines des requêtes de création d’utilisateur que j’ai essayées. Les utilisateurs sont créés avec succès, je ne peux juste pas les récupérer par external_id. (Note annexe : y a-t-il aussi un moyen de voir l’external_id d’un utilisateur ?) :

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

DiscourseConnect est-il activé sur votre site ? Sinon, vous devez trouver le nom du fournisseur de votre authentificateur et l’utiliser dans la requête. Vous trouverez plus de détails à ce sujet ici : Finding a user by their identity provider 'external ID'.

Merci pour votre réponse.

Je pense que cela signifie que nous ne pouvons pas utiliser external_id, car nous ne voulons pas activer DiscourseConnect. Nous ne voulons pas remplacer l’authentification Discourse.

Nous devrons probablement créer l’utilisateur via l’API, puis stocker l’id utilisateur de Discourse dans notre système et y faire référence de cette manière.

1 « J'aime »