Comment puis-je accorder l'accès à Discourse via une API ?

Je suis un débutant complet. Je demande de l’aide, comment puis-je donner accès à Discourse via l’API ?

créez d’abord une clé d’API en accédant à admin > avancé > clés d’API, en cliquant sur nouvelle clé d’API et en configurant ses détails. vous utilisez ensuite la clé d’API générée et le nom d’utilisateur de l’utilisateur pour lequel elle a été créée dans les en-têtes Api-Key et Api-Username de vos requêtes d’API. @Enit

@Enit Bonjour, pourriez-vous préciser ? Faites-vous référence à l’octroi d’un accès à un forum privé via l’API, ou à autre chose ?

Merci !

1 « J'aime »

Nous construisons un système de mémoire alimenté par l’IA où plusieurs agents IA (DeepSeek, Claude, ChatGPT, etc.) interagissent avec notre forum Discourse comme base de connaissances partagée.

Configuration actuelle :

  • Discourse auto-hébergé (dernière version stable)
  • VPS : Ubuntu 22.04, installation basée sur Docker
  • Utilisateur administrateur : adminjozsi
  • Utilisateur agent IA : grokenit (créé par invitation par e-mail)

Le Problème

Nous rencontrons des problèmes fréquents d’invalidation de clés API :

  1. Les clés API expirent de manière inattendue même lorsqu’elles sont définies sur une validité de « 1 an ».
  2. Des erreurs « API invalide » apparaissent de manière aléatoire, nécessitant la génération de nouvelles clés.
  3. Les clés qui fonctionnaient hier échouent soudainement aujourd’hui sans aucune modification de configuration.
  4. Erreur : {"errors":["Invalid API key"]} sur les requêtes POST vers /posts.json.

Ce que nous avons essayé

:white_check_mark: Clés API au niveau de l’utilisateur (au lieu de globales)

  • Description : « Grok - Clé API utilisateur - adminjozsi »
  • Niveau utilisateur : « Utilisateur unique » → adminjozsi
  • Portée : Globale

:white_check_mark: Ajustements des limites de débit :

  • Définir « Limite de débit pour la création de posts par nouvel utilisateur » à 0.
  • Augmenté toutes les limites de débit pour les nouveaux utilisateurs.

:white_check_mark: Régénérations multiples :

  • Généré plus de 5 clés API au cours de la semaine dernière.
  • Chacune fonctionne initialement, puis échoue dans les 24 à 48 heures.

Questions

1. Pourquoi les clés API expirent-elles malgré le réglage d’un an ?

Y a-t-il un mécanisme d’expiration caché que nous manquons ? Les journaux du serveur ne montrent aucun événement de révocation.

2. Deux clés API différentes peuvent-elles partager le même en-tête Api-Username ?

Notre idée d’architecture :

  • Clé API n°1 → Utilisée par l’administrateur humain (moi) pour les opérations manuelles
  • Clé API n°2 → Utilisée par l’agent IA (DeepSeek) pour les posts automatisés
  • Les deux clés → Même en-tête Api-Username: adminjozsi

Question : Discourse gérera-t-il cela correctement, ou attend-il 1 clé = 1 utilisateur ?

3. Devrions-nous créer des utilisateurs distincts pour chaque agent IA ?

Approche alternative :

  • Utilisateur adminjozsi → administrateur humain (moi)
  • Utilisateur grokenit → agent IA n°1 (DeepSeek)
  • Utilisateur claude-ai → agent IA n°2 (Claude)
  • Chacun avec sa propre clé API.

Préoccupations :

  • Les comptes d’agents IA nécessitent-ils des ajustements de niveau de confiance ?
  • Cela causera-t-il des problèmes de limitation de débit ?
  • Est-ce le modèle recommandé pour les intégrations de bots/agents ?

4. Existe-t-il des meilleures pratiques en matière de stabilité de l’API pour une utilisation sans tête/automatisée ?

Nous avons besoin d’une authentification API ultra-fiable car :

  • Les agents IA fonctionnent 24h/24 et 7j/7 sans supervision humaine.
  • Les posts échoués = perte de données dans notre système de mémoire.
  • La régénération des clés nécessite une intervention manuelle.

Détails Techniques

Format de la requête API :

curl -X POST "https://www.enit.hu/posts.json" \
  -H "Api-Key: [KEY]" \
  -H "Api-Username: adminjozsi" \
  -H "Content-Type: application/json" \
  -d '{"title":"Test","raw":"Content","category":6}'

Fonctionne initialement : :white_check_mark: Renvoie {"id":123,"topic_id":45,...}
24-48h plus tard : :cross_mark: Renvoie {"errors":["Invalid API key"]}

Environnement serveur :

  • Version Discourse : 3.6.0.beta2-latest (f26f894bfc)
  • Installation basée sur Docker
  • Pas de proxy inverse (HTTPS direct via Let’s Encrypt)
  • Pas de CDN ni de couche de mise en cache

Ce dont nous avons besoin

Solution idéale :

  1. Clés API stables qui n’expirent pas de manière inattendue.
  2. Des directives claires sur l’architecture multi-agents (1 clé vs plusieurs clés).
  3. Des conseils de dépannage pour les erreurs « API invalide » lorsque les clés devraient être valides.

Toute information serait grandement appréciée ! C’est un blocage critique pour notre projet d’intégration IA.

URL du forum : https://www.enit.hu
Nous sommes heureux de fournir plus de journaux/détails si nécessaire !

J’ai fait ça. L’API fonctionne pendant quelques heures, puis cesse de fonctionner.

Je m’appelle József, je viens de Hongrie et je travaille en équipe de nuit dans une usine.
Je ne suis pas développeur ni informaticien, j’essaie juste de construire quelque chose d’utile pour moi — un petit système pour organiser mes notes de travail et personnelles.

J’ai installé Discourse sur mon propre VPS car je voulais l’utiliser comme un journal privé ou un outil de mémoire.
Il n’est pas public, personne d’autre ne l’utilise, c’est juste pour moi.
Je l’utilise avec des assistants IA (comme ChatGPT ou Claude) pour écrire et organiser de courtes entrées sur le travail quotidien, l’agriculture ou les souvenirs de famille.
Cela m’aide à me souvenir des routines de l’usine, à suivre de petits projets et à tout organiser en un seul endroit.

Chaque fois que je crée une clé API dans le panneau d’administration, elle ne fonctionne que pendant quelques heures.
Ensuite, elle cesse soudainement de fonctionner et affiche “Clé API invalide”.
Je dois en créer une nouvelle, ce qui casse ma configuration.
Cela s’est déjà produit plusieurs fois en une semaine.

Clés API au niveau utilisateur (pas globales)

Limites de débit définies à 450

Journaux vérifiés

Paramètres différents essayés

Rien n’aide — la clé devient toujours invalide après quelques heures.

Existe-t-il un moyen de créer une clé API qui n’expire pas automatiquement ?
Ou peut-être une meilleure méthode d’authentification pour une configuration mono-utilisateur ?

Cette configuration Discourse pourrait vraiment m’aider à gérer ma vie professionnelle et personnelle.
C’est un système privé, sur mon propre serveur, sans utilisateurs publics — juste moi.
Si ce problème d’API peut être résolu, je pense que d’autres pourraient également utiliser Discourse de cette manière, pas seulement pour des forums mais aussi comme système de mémoire personnel.

Détails techniques

  • Domaine : https://www.enit.hu

  • Version : Discourse 3.6.0.beta2-latest

  • Configuration : Docker sur Ubuntu 22.04 LTS

  • VPS : RackForest (2 Go de RAM)

  • Utilisateur : Administrateur unique (adminjozsi)

  • Pourquoi la clé devient-elle invalide ?

  • Existe-t-il un paramètre d’expiration caché ?

  • Comment puis-je la rendre stable ?

J’apprécie vraiment toute aide que vous pourrez m’apporter.
Si je trouve une solution fonctionnelle, j’écrirai volontiers un court guide afin que d’autres dans une situation similaire puissent l’utiliser aussi.

Merci encore,
József Tomkó
https://www.enit.hu