Discourseにサードパーティのモデレーションサービスを統合するには?

皆さん、こんにちは。

Discourseフォーラムに外部のサードパーティ製モデレーションサービス(監視・審査サービス)を統合しようとしています。

目標は、外部のモデレーションプロバイダーがモデレーション待ちの投稿を取得し、自社のプラットフォームでレビューした上で、モデレーションの判断(承認、却下、またはフラグ付け)をDiscourseに返送できるようにすることです。

以下の点について知りたいです:

  • Discourseは、この種の外部モデレーションワークフローを公式にサポートしていますか?

  • この統合は、Discourse REST APIのみを使用して完全に実装できますか?

  • モデレーション待ちの投稿を取得し、モデレーションの判断をプログラム的に送信するための推奨方法はありますか?

  • Discourseとサードパーティ製モデレーションプラットフォームを接続するための既存のプラグイン、統合ソリューション、またはベストプラクティスがありますか?

理想的には、Discourseをメインの議論プラットフォームとして維持しつつ、モデレーション操作を外部プロバイダーに委譲したいと考えています。

類似の実装例やガイダンスがあれば、大変助かります。

ご回答をお待ちしております。

専用の機能としてはサポートしていませんが、レビューキュー内のすべての操作は API を通じて行われるため、人間が /review で実行できることはすべて API 経由でも可能です。そのため、統合用にモデレーション権限を持つ専用ユーザーを作成し、そのユーザー用の API キーを生成することができます。

はい、可能ですが、詳細には多くのバリエーションがあります。レビューキューでは、投稿が保留状態(サイト/カテゴリ/ユーザーの設定に基づく)の場合、またはユーザーによってフラグ付けされた場合のみ表示されます。すべての投稿をあなたのシステムに通す必要がある場合は、post_created/post_edited などの投稿 Webhook を使用する必要があります。

/review.json をポーリングするか、reviewable_created/reviewable_updated などの Webhook を使用できます。個別の項目は /review/:id.json で取得でき、利用可能なアクションと現在のバージョンが含まれます。

アクションを送信するには、PUT /review/:id/perform/:action_id?version=N を使用できます。バージョンは必須です。これにより、取得後に項目が変更された場合に競合が発生することを防げます。

特定のアクションの実行方法を知りたい場合は、Discourse UI をブラウザで操作してネットワークタブからリクエストをコピーすることで、リバースエンジニアリングを行うことができます。Reverse engineer the Discourse API を参照してください。

Discourse Akismet(おそらく最も近い例)と Discourse AI は、どちらもフラグ付けプロセスの一部としてサードパーティにアクセスできるファーストパーティ製プラグインです。これらを参考にするのが役立つかもしれません。