Avez-vous également sélectionné un utilisateur pour créer la clé API ?
Généralement, une clé API « tous les utilisateurs » est ce qu’il vous faut. Pour certaines tâches, notamment l’utilisation de discourse_theme, une clé utilisateur est requise.
Je peux reproduire le problème en suivant les étapes que vous avez indiquées. Lors de la création d’une clé API pour un seul utilisateur, Discourse s’attend à ce qu’un nom d’utilisateur soit ajouté au champ « Utilisateur » du formulaire :
Si « Un seul utilisateur » est sélectionné comme niveau d’utilisateur, mais qu’aucun nom d’utilisateur n’est ajouté au champ « Utilisateur », une clé API « Tous les utilisateurs » est créée. Je m’attendrais plutôt à ce qu’un message d’erreur s’affiche, comme cela se produit lorsque le formulaire est soumis sans description.
Je souhaitais créer un utilisateur de type « bot » pour récupérer les publications de catégories spécifiques. Cette instance Discourse utilise uniquement l’authentification GSuite, il n’est donc plus possible de créer des utilisateurs arbitraires. J’espérais que pour une clé « Utilisateur unique », il me serait permis de saisir le nouveau nom d’utilisateur que je voulais attribuer au bot, mais je constate maintenant que le nom d’utilisateur doit appartenir à un utilisateur existant. Le champ de formulaire pour le nom d’utilisateur ne comporte aucune validation, ce qui n’a pas rendu clair le fait que je ne pouvais pas saisir n’importe quel nom (comme je le ferais par exemple pour les webhooks entrants de Slack). Ensuite, lors de la soumission, l’opération échoue silencieusement lors de la recherche du nom d’utilisateur saisi et une clé « Tous les utilisateurs » est créée à la place.
Je suppose qu’il s’agit davantage d’un bug d’utilisabilité que fonctionnel. J’ai trouvé la documentation ici confuse, car elle n’expliquait pas du tout le champ « Niveau utilisateur » et ne mentionnait pas de type « Tous les utilisateurs », sauf en une instance dans un commentaire plus loin dans le fil de discussion.
Non, ce n’est pas un composant select-kit. Le problème est que nous vérifions uniquement la présence de la description et non celle du nom d’utilisateur. Le mode utilisateur (unique/tous) est une valeur côté client, donc lorsque le modèle est validé côté serveur, tout ce qu’il sait, c’est que nous avons demandé une clé et que nous avons fourni ou non un utilisateur.
Cela devrait améliorer la situation ; je demanderai à David de l’examiner :