Мы хотим интегрировать внешний сторонний сервис модерации с нашим форумом Discourse.
Цель состоит в том, чтобы позволить внешнему провайдеру модерации получать сообщения, ожидающие модерации, просматривать их через собственную платформу и отправлять решения о модерации (одобрить, отклонить или пометить) обратно в Discourse.
Я хотел бы узнать:
Поддерживает ли Discourse официально такой тип внешнего рабочего процесса модерации?
Можно ли реализовать эту интеграцию полностью через REST API Discourse?
Существует ли рекомендуемый способ программно получать ожидающие модерации сообщения и отправлять решения о модерации?
Есть ли существующие плагины, интеграции или лучшие практики для подключения Discourse к сторонним платформам модерации?
Идеально было бы использовать Discourse как основную платформу для обсуждений, делегируя операции по модерации внешнему провайдеру.
Будем очень благодарны за любые рекомендации или примеры подобных реализаций.
Не как отдельная функция, но всё в нашей очереди на проверку проходит через наш API, поэтому всё, что человек может сделать в /review, можно сделать и через API. Так что вы можете создать специального пользователя с правами модератора для вашей интеграции и сгенерировать для него API-ключ.
Да, но есть много вариаций в деталях. Очередь на проверку видит посты только если они ожидают рассмотрения (на основе настроек сайта/категории/пользователя) или были помечены пользователем. Если вам нужно, чтобы каждый пост проходил через вашу систему, вам необходимо использовать вебхуки постов, такие как post_created/post_edited.
Вы можете опрашивать /review.json или использовать вебхуки, такие как reviewable_created/reviewable_updated. Вы можете получить отдельные элементы с помощью /review/:id.json — это будет включать доступные действия и текущую версию.
Чтобы отправить действие обратно, вы можете использовать PUT /review/:id/perform/:action_id?version=N. Версия обязательна, чтобы не создавать конфликты, если элемент изменился после получения.
Если вы хотите разобраться, как выполнить конкретное действие, вы можете reverse-engineer’ить его, выполнив это в вашем браузере через UI Discourse и скопировав запрос из сетевой вкладки. Посмотрите Reverse engineer the Discourse API
Discourse Akismet (вероятно, самый близкий пример) и Discourse AI — это оба плагина первой стороны, которые могут обращаться к третьим лицам как часть процесса флага. Они могут быть полезны для изучения.