Comment puis-je mettre à jour les utilisateurs via l'API en utilisant l'ID utilisateur (pas le nom d'utilisateur) ?

Je souhaite que mon application mette à jour le compte Discourse lié de mes utilisateurs : plus précisément le nom d’affichage et les groupes auxquels l’utilisateur appartient (par exemple, lorsqu’ils sont promus dans mon application, ils sont également ajoutés à un autre groupe de forum).

Je pensais stocker une référence « identifiant de membre Discourse » dans la table des utilisateurs de mon application et l’utiliser pour effectuer des mises à jour, par exemple POST /users/{id}.json avec un payload comme {"name": "nouveau nom"}. Mais il semble que toutes les routes de l’API attendent un username plutôt qu’un id.

Je ne comprends pas pourquoi ce serait la valeur par défaut : les utilisateurs ne peuvent-ils pas changer leur nom d’utilisateur ? Il semblerait que cela rompe l’intégration s’ils le faisaient.

Comment puis-je apporter des modifications comme celle-ci de manière fiable, en utilisant un identifiant cohérent (comme id) ?

2 « J'aime »

Pour le moment, je pense que votre meilleure option est d’effectuer deux requêtes API. La première pour récupérer l’utilisateur par son identifiant afin d’obtenir le nom d’utilisateur, et la deuxième requête pour mettre à jour par nom d’utilisateur.

Il existe une option pour mettre à jour un utilisateur via external_id, mais je ne pense pas qu’elle puisse être utilisée sans l’activation de la connexion unique (single-sign-on). De cette manière, Discourse stocke l’identifiant de l’utilisateur de votre application, et non l’inverse.

2 « J'aime »

Merci, j’ai eu un déclic similaire après avoir publié.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.