Je ne pense pas qu’il soit possible de récupérer la valeur d’une clé d’API via l’API. Discourse ne sauvegarde pas les clés d’API non chiffrées dans la base de données. Même si vous pouviez récupérer la valeur chiffrée, il n’y aurait aucun moyen de la déchiffrer sur votre application.
Pouvez-vous expliquer un peu plus votre cas d’utilisation ? Si une clé d’API utilisateur a déjà été générée pour un utilisateur, je ne vois pas pourquoi il devrait approuver l’autorisation une seconde fois.
Modification : il est possible d’utiliser une clé d’API administrateur pour générer une clé d’API pour un utilisateur. Vous trouverez plus de détails ici : Generate User Api Key Without User Approval - #2 by simon
En relisant mon message, je constate que je n’ai pas expliqué comment la variable $json était définie pour la requête. La façon la plus simple de structurer les données est de faire une requête pour générer une seule clé d’API utilisateur avec les scopes que vous souhaitez utiliser via l’interface utilisateur de Discourse, puis de regarder la valeur de la charge utile de la requête envoyée à /admin/api/keys :
