Ciao, abbiamo installato il plugin “Solved” e stiamo creando categorie programmaticamente utilizzando uno script Python. Vogliamo impostare questi campi di impostazione della categoria su “True”. Durante l’esecuzione dello script, dice che è stato aggiornato correttamente, ma quando controlliamo il campo delle impostazioni di questa categoria, non è impostato su “True” ed è ancora su “False”. Come possiamo eseguire il debug e risolvere questo problema?
Seguo sempre Reverse engineer the Discourse API per queste domande.
Per quanto ne so, se stai creando categorie con uno script, presumo che tu stia usando JSON per aggiungere le categorie. Dovresti apportare alcune modifiche all’endpoint e allo script. Puoi anche fare riferimento a questa documentazione: Discourse Categories API.
Tuttavia, Discourse è uno strumento potente. Puoi consultare questa guida: Reverse Engineering the Discourse API. Poiché Discourse è supportato da una completa API JSON, puoi effettuare il reverse engineering, apportare le modifiche necessarie e farlo funzionare come desideri.
Un rapido suggerimento:
- Modifica manualmente l’impostazione desiderata “Risolto” nell’interfaccia utente.
- Ispeziona le richieste di rete effettuate dal browser per identificare l’endpoint API esatto, il metodo di richiesta (ad esempio,
PUT) e il payload.
In uno script Python sarebbe qualcosa di simile a questo:
payload = {
"enable_solved": True # Modifica questo
}
response = requests.put(url, headers=headers, json=payload)
if response.status_code == 200:
print("Categoria aggiornata")
else:
print(f"Fallito: {response.status_code} - {response.text}")
update_category_settings(category_id=123)
PS: Non sono del tutto sicuro di questo, ma di recente ho creato alcuni script, quindi questa risposta si basa sulle cose che ho incontrato finora. ![]()
Grazie Mihir, ha aiutato a risolvere questo problema. Apprezzo il tuo contributo e i tuoi suggerimenti.
Grazie Thomas per aver indicato questo approccio.
Sono contento che sia stato d’aiuto ![]()
