Como posso conceder acesso ao Discourse através de uma API?

Sou um completo iniciante. Peço ajuda, como posso conceder acesso ao Discourse através da API?

primeiro crie uma chave de API navegando para admin > avançado > chaves de API, clicando em nova chave de API e configurando seus detalhes. em seguida, use a chave de API gerada e o nome de usuário do usuário para o qual ela foi criada nos cabeçalhos Api-Key e Api-Username de suas solicitações de API. @Enit

@Enit Olá, você poderia detalhar mais sobre isso? Você está se referindo a conceder acesso a um fórum privado via API ou a outra coisa?

Obrigado!

1 curtida

Estamos construindo um sistema de memória com IA onde múltiplos agentes de IA (DeepSeek, Claude, ChatGPT, etc.) interagem com nosso fórum Discourse como uma base de conhecimento compartilhada.

Configuração atual:

  • Discourse auto-hospedado (última versão estável)
  • VPS: Ubuntu 22.04, instalação baseada em Docker
  • Usuário administrador: adminjozsi
  • Usuário agente de IA: grokenit (criado via convite por e-mail)

O Problema

Estamos enfrentando problemas de invalidação frequente de chaves de API:

  1. Chaves de API expiram inesperadamente mesmo quando definidas para validade de “1 ano”
  2. Erros de “API Inválida” aparecem aleatoriamente, exigindo a geração de novas chaves
  3. Chaves que funcionaram ontem falham subitamente hoje sem alterações de configuração
  4. Erro: {"errors":["Invalid API key"]} em requisições POST para /posts.json

O Que Tentamos

:white_check_mark: Chaves de API de nível de usuário (em vez de Globais)

  • Descrição: “Grok - Chave de API de Usuário - adminjozsi”
  • Nível de usuário: “Usuário Único” → adminjozsi
  • Escopo: Global

:white_check_mark: Ajustes de limite de taxa:

  • Definir “Limite de taxa de criação de postagem para novo usuário” para 0
  • Aumentado todos os limites de taxa para novos usuários

:white_check_mark: Múltiplas regenerações:

  • Geradas 5+ chaves de API na última semana
  • Cada uma funciona inicialmente, depois falha em 24-48 horas

Perguntas

1. Por que as chaves de API expiram apesar da configuração de 1 ano?

Existe um mecanismo de expiração oculto que estamos perdendo? Os logs do servidor não mostram eventos de revogação.

2. Duas chaves de API diferentes podem compartilhar o mesmo cabeçalho Api-Username?

Nossa ideia de arquitetura:

  • Chave de API #1 → Usada pelo administrador humano (eu) para operações manuais
  • Chave de API #2 → Usada pelo agente de IA (DeepSeek) para postagens automatizadas
  • Ambas as chaves → Mesmo cabeçalho Api-Username: adminjozsi

Pergunta: O Discourse lidará com isso corretamente, ou espera 1 chave = 1 usuário?

3. Devemos criar usuários separados para cada agente de IA?

Abordagem alternativa:

  • Usuário adminjozsi → administrador humano (eu)
  • Usuário grokenit → agente de IA #1 (DeepSeek)
  • Usuário claude-ai → agente de IA #2 (Claude)
  • Cada um com sua própria chave de API

Preocupações:

  • Contas de agentes de IA precisam de ajustes de Nível de Confiança?
  • Isso causará problemas de limitação de taxa?
  • Este é o padrão recomendado para integrações de bot/agente?

4. Existem melhores práticas de estabilidade de API para uso headless/automatizado?

Precisamos de autenticação de API extremamente confiável porque:

  • Agentes de IA rodam 24/7 sem supervisão humana
  • Postagens falhas = perda de dados em nosso sistema de memória
  • Regenerar chaves requer intervenção manual

Detalhes Técnicos

Formato da requisição de 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}'

Funciona inicialmente: :white_check_mark: Retorna {"id":123,"topic_id":45,...}
24-48h depois: :cross_mark: Retorna {"errors":["Invalid API key"]}

Ambiente do servidor:

  • Versão do Discourse: 3.6.0.beta2-latest (f26f894bfc)
  • Instalação baseada em Docker
  • Sem proxy reverso (HTTPS direto via Let’s Encrypt)
  • Sem camada de CDN ou cache

O Que Precisamos

Solução ideal:

  1. Chaves de API estáveis que não expirem inesperadamente
  2. Orientação clara sobre arquitetura multi-agente (1 chave vs múltiplas chaves)
  3. Dicas de depuração para erros de “API Inválida” quando as chaves deveriam ser válidas

Qualquer insight seria muito apreciado! Este é um bloqueador crítico para nosso projeto de integração de IA.

URL do Fórum: https://www.enit.hu
Felizes em fornecer mais logs/detalhes se necessário!

Eu fiz isso. A API funciona por algumas horas e depois para de funcionar.

Meu nome é József, sou da Hungria e trabalho em turnos noturnos em uma fábrica.
Não sou desenvolvedor nem profissional de TI, apenas estou tentando construir algo útil para mim — um pequeno sistema para organizar minhas anotações de trabalho e pessoais.

Instalei o Discourse em meu próprio VPS porque queria usá-lo como um diário particular ou ferramenta de memória.
Não é público, ninguém mais o usa, é apenas para mim.
Eu o uso em conjunto com alguns assistentes de IA (como ChatGPT ou Claude) para escrever e organizar entradas curtas sobre o trabalho diário, agricultura ou memórias de família.
Ele me ajuda a lembrar rotinas da fábrica, acompanhar pequenos projetos e manter as coisas organizadas em um só lugar.

Toda vez que crio uma chave de API no painel de administração, ela funciona apenas por algumas horas.
Então, de repente, ela para de funcionar e diz “Chave de API inválida”.
Preciso criar uma nova, o que quebra minha configuração.
Isso já aconteceu várias vezes em uma semana.

Chaves de API de nível de usuário (não globais)

Limites de taxa definidos para 450

Logs verificados

Tentei configurações diferentes

Nada ajuda — a chave ainda se torna inválida após algumas horas.

Existe alguma maneira de criar uma chave de API que não expire automaticamente?
Ou talvez um método de autenticação melhor para uma configuração de usuário único?

Esta configuração do Discourse realmente poderia me ajudar a gerenciar minha vida profissional e pessoal.
É um sistema privado, em meu próprio servidor, sem usuários públicos — apenas eu.
Se este problema de API puder ser corrigido, acredito que outros também poderiam usar o Discourse dessa forma, não apenas para fóruns, mas também como um sistema de memória pessoal.

Detalhes técnicos

  • Domínio: https://www.enit.hu

  • Versão: Discourse 3.6.0.beta2-latest

  • Configuração: Docker no Ubuntu 22.04 LTS

  • VPS: RackForest (2 GB de RAM)

  • Usuário: Único administrador (adminjozsi)

  • Por que a chave se torna inválida?

  • Existe alguma configuração de expiração oculta?

  • Como posso torná-la estável?

Agradeço muito qualquer ajuda que você puder oferecer.
Se eu encontrar uma solução funcional, ficarei feliz em escrever um pequeno guia para que outros em situação semelhante possam usá-lo também.

Obrigado novamente,
József Tomkó
https://www.enit.hu