Como integrar um serviço de moderação de terceiros ao Discourse?

Olá a todos,

Estamos procurando integrar um serviço externo de moderação de terceiros ao nosso fórum Discourse.

O objetivo é permitir que um provedor externo de moderação recupere as publicações pendentes de moderação, as revise por meio de sua própria plataforma e envie as decisões de moderação (aprovar, rejeitar ou sinalizar) de volta ao Discourse.

Gostaria de saber:

  • O Discourse oferece suporte oficial a esse tipo de fluxo de trabalho de moderação externa?

  • Essa integração pode ser implementada inteiramente por meio da API REST do Discourse?

  • Existe uma maneira recomendada para recuperar publicações pendentes e enviar decisões de moderação programaticamente?

  • Existem plugins, integrações ou boas práticas existentes para conectar o Discourse a plataformas de moderação de terceiros?

Idealmente, gostaríamos de manter o Discourse como a principal plataforma de discussão, delegando as operações de moderação a um provedor externo.

Qualquer orientação ou exemplo de implementações semelhantes seria muito apreciado.

Agradeço desde já!

Não como um recurso dedicado, mas tudo na nossa fila de revisão passa pela nossa API, então qualquer coisa que um humano possa fazer em /review pode ser feita via API. Portanto, você pode criar um usuário dedicado com permissões de moderação para sua integração e gerar uma chave de API para esse usuário.

Sim, mas há muitas variações nos detalhes. A fila de revisão só vê as publicações se elas estiverem pendentes (com base nas configurações do site/categoria/usuário) ou sinalizadas por um usuário. Se você precisar que todas as publicações passem pelo seu sistema, precisará usar os webhooks de publicação, como post_created/post_edited.

Você pode fazer polling em /review.json ou usar webhooks como reviewable_created/reviewable_updated. Você pode buscar itens individuais com /review/:id.json — isso incluirá as ações disponíveis e a versão atual.

Para enviar uma ação de volta, você pode usar PUT /review/:id/perform/:action_id?version=N. A versão é obrigatória para que você não crie conflitos caso o item tenha sido alterado após a busca.

Se você quiser descobrir como executar uma ação específica, pode fazer engenharia reversa executando-a no seu navegador via a interface do Discourse e copiando a solicitação da aba de rede. Dê uma olhada em Reverse engineer the Discourse API

O Discourse Akismet (provavelmente o exemplo mais próximo) e o Discourse AI são ambos plugins de primeira parte que podem se comunicar com terceiros como parte de um processo de sinalização. Esses podem ser úteis para examinar.