Olá, instalamos o plugin “Solved” e estamos criando categorias programaticamente usando um script Python. Queremos definir esses campos de configuração de categoria como “True”. Ao executar o script, ele informa que foi atualizado com sucesso, mas quando verificamos o campo de configurações dessa categoria, ele não está definido como “True” e ainda está como “False”. Como depurar e corrigir esse problema?
Eu sempre sigo Reverse engineer the Discourse API para tais perguntas.
Pelo que sei, se você está criando categorias com um script, presumo que você esteja usando JSON para adicionar as categorias. Você teria que fazer algumas alterações no endpoint e no script. Você também pode consultar esta documentação: Discourse Categories API.
No entanto, o Discourse é uma ferramenta poderosa. Você pode conferir este guia: Reverse Engineering the Discourse API. Como o Discourse é suportado por uma API JSON completa, você pode fazer a engenharia reversa dela, fazer as alterações necessárias e fazê-la funcionar conforme necessário.
Uma dica rápida:
- Altere a configuração desejada de “Resolvido” manualmente na interface do usuário.
- Inspecione as requisições de rede feitas pelo navegador para identificar o endpoint exato da API, o método de requisição (por exemplo,
PUT) e a carga útil.
Em um script Python, ficaria algo assim:
payload = {
"enable_solved": True # Ajuste isto
}
response = requests.put(url, headers=headers, json=payload)
if response.status_code == 200:
print("Categoria atualizada")
else:
print(f"Falha: {response.status_code} - {response.text}")
update_category_settings(category_id=123)
PS: Não tenho certeza absoluta sobre isso, mas recentemente criei alguns scripts, então esta resposta é baseada nas coisas que encontrei até agora. ![]()
Obrigado Mihir, isso ajudou a resolver este problema. Agradeço sua contribuição e sugestões.
Obrigado Thomas por apontar esta abordagem.
Fico feliz que tenha ajudado ![]()
