Certains points de terminaison ne nécessitent aucune authentification, à peu près tout le reste nécessitera que vous soyez authentifié. Pour vous authentifier, vous devrez créer une clé d’API à partir du panneau d’administration.
C’est dommage, car il existe de nombreuses utilisations légitimes de l’API
que les utilisateurs réguliers pourraient utiliser, pas seulement les administrateurs.
Par exemple, un cronjob mensuel qu’un utilisateur pourrait configurer pour télécharger ses
préférences.json au lieu de cliquer sur Télécharger dans les Préférences
(Backup/export/import Preferences).
Je dis qu’un changement dans le code source est nécessaire, afin que bientôt les utilisateurs du monde entier puissent accéder à l’API du Discourse local qu’ils utilisent, pour obtenir leurs données personnelles, etc.
Cependant, sans le soutien des administrateurs et un point de terminaison approuvé dans les paramètres du site des clés d’API utilisateur, les « utilisateurs réguliers » ne peuvent toujours pas générer leurs propres clés d’API.
Cette réponse est incorrecte. Tout utilisateur peut générer une clé API utilisateur si la génération de clés API utilisateur est activée pour le niveau de confiance de l’utilisateur. Si vous ne définissez pas de redirection dans la charge utile de la requête, une réponse encodée en base64 s’affichera dans le navigateur et contiendra la clé.
Consultez ce sujet pour un script qui montre comment cela est fait.
Je pense au cas par défaut où la personne A a installé Discourse,
et la personne B est juste un utilisateur simple sur le Discourse de la personne A,
et A n’a modifié aucun paramètre d’administration, B pourrait-il encore faire beaucoup avec l’API ?
La génération de clés API utilisateur est activée par défaut pour tous les utilisateurs, et tout ce que vous pouvez faire via l’interface web, vous pouvez le faire via l’API car l’interface web n’est qu’un frontend de l’API.
Personnellement, je l’utilise dans une extension Chrome qui maintient un total courant de toutes mes notifications non lues sur toutes les instances sur lesquelles j’ai des comptes, à quelques exceptions près.
Si un utilisateur possède déjà un compte sur une instance Discourse, il devrait pouvoir utiliser la même authentification par cookie depuis le navigateur pour toute requête API non-navigateur.