Come integrare un servizio di moderazione di terze parti con Discourse?

Ciao a tutti,

Stiamo cercando di integrare un servizio di moderazione esterno di terze parti con il nostro forum Discourse.

L’obiettivo è consentire a un provider di moderazione esterno di recuperare i post in attesa di moderazione, esaminarli tramite la propria piattaforma e inviare le decisioni di moderazione (approvare, rifiutare o segnalare) a Discourse.

Vorrei sapere:

  • Discourse supporta ufficialmente questo tipo di workflow di moderazione esterna?

  • È possibile implementare questa integrazione interamente tramite l’API REST di Discourse?

  • Esiste un metodo consigliato per recuperare i post in attesa e inviare le decisioni di moderazione in modo programmatico?

  • Ci sono plugin, integrazioni o buone pratiche esistenti per collegare Discourse a piattaforme di moderazione di terze parti?

Idealmente, vorremmo mantenere Discourse come piattaforma principale di discussione, delegando le operazioni di moderazione a un provider esterno.

Qualsiasi guida o esempio di implementazioni simili sarebbe molto apprezzato.

Grazie in anticipo!

Non come funzionalità dedicata, ma tutto nella nostra coda di revisione passa tramite la nostra API, quindi qualsiasi cosa un umano possa fare in /review è fattibile anche tramite l’API. Puoi quindi creare un utente dedicato con permessi di moderazione per la tua integrazione e generare una chiave API per quell’utente.

Sì, ma ci sono molte varianti nei dettagli. La coda di revisione vede i post solo se sono in sospeso (in base alle impostazioni del sito/categoria/utente) o segnalati da un utente. Se hai bisogno che ogni post passi attraverso il tuo sistema, dovresti usare gli webhook dei post come post_created/post_edited.

Puoi eseguire il polling su /review.json o utilizzare webhook come reviewable_created/reviewable_updated. Puoi recuperare elementi individuali con /review/:id.json — questo includerà le azioni disponibili e la versione corrente.

Per inviare un’azione puoi usare PUT /review/:id/perform/:action_id?version=N. La versione è obbligatoria in modo da non creare conflitti se l’elemento è stato modificato dopo il recupero.

Se vuoi capire come eseguire un’azione specifica, puoi ingegnerizzarla al contrario facendola nel browser tramite l’interfaccia di Discourse e copiando la richiesta dalla scheda di rete; dai un’occhiata a Reverse engineer the Discourse API

Discourse Akismet (probabilmente l’esempio più vicino) e Discourse AI sono entrambi plugin di prima parte che possono interagire con terze parti come parte di un processo di segnalazione. Potrebbero essere utili da esaminare.