Discourseでボットを作成する

Discourseで、私が作成した多くのDiscordボットと同様の方法で、コマンドに応答するボットを作成する方法はありますか?

基本的に、インストールできるさまざまなプラグインがあることは知っていますが、私の考えでは、プラグインが問題を引き起こす可能性があり、特にメンテナーがプラグインのメンテナンスをやめたいと判断した場合に、プラグインをインストールしようとするよりも、コメントのテキストをリッスンするボットがあれば、はるかに簡単にメンテナンスできると思います。

「いいね!」 1

プラグインが必要になります。

例/出発点として、私のFrotzプラグインをご覧ください。

このようなAPI専用プラグインは、時間の経過とともに安定する傾向があるため、不安定さについて心配する必要はありません。いずれにせよ、すべてのコードにはメンテナンスが必要です。Frotz-botについては、時間の経過とともに最小限の変更しか加えていません。

新しい投稿のようなイベントに対してコードを記述する方法については、私のDiscordボットプラグインをご覧ください。

ニーズは、以下で満たされる可能性があります。

コードの運命をより細かく制御したい場合は、自分でフォーク/リポジトリを維持してください。

「いいね!」 6

完全に分離したい場合は、Webhook を使用してイベントをボットに配信し、HTTP リクエスト API を使用してボットに Discourse の変更を行わせることができます。

Discourse API ドキュメント

@merefield が示唆しているように、コア機能をオーバーライドせずに、イベントの通知を受け取り、コア API と対話するプラグインを作成することも可能です。これは、保守が容易で、意図しない副作用が発生する可能性が低くなります。

Webhook/API ルートを選択すると、ボットを実行するためのスタックを設定し、Discourse が利用可能な間は常に利用可能であることを確認する必要があります。これらはすべて、Discourse にロードされたプラグインで無料で行われます。

プラグインを作成するには、Ruby を学習し、Discourse クラスに慣れる必要があります。しかし、すでに他の言語でボットを作成および保守できるのであれば、必要なことはすぐに習得できるはずです。

「いいね!」 3

ああ、それもそうですね、サイモン、良い点です!

皆様、ご提案ありがとうございます。すべて参考にさせていただきます。 :smiley:

これは投稿/コメントで実行できます。

グループチャットにボットを配置することは可能ですか?
グループチャットにメッセージを配信できる受信Webhookがあることはわかっていますが、チャットメッセージをリッスンしてからそれに応じて何かを行うボットアカウントの方法はないようです。

はい、例えば:

は、グループチャット(トピック、プライベートメッセージなども)をサポートしています。

(これはコマンドなしの純粋なAIボットです(インターフェースは100%自然言語なので、これは必要ありません)が、構造は同じになります)

「いいね!」 1

@merefield さん、ありがとうございます。

プラグインを使用すると、グループチャットメッセージのイベントハンドラー/リスナーを追加できます。
Webhookイベントを処理するRESTエンドポイントサーバーがあり、ボットを投稿/コメントに追加するのにうまく機能します。
しかし残念ながら、グループチャットメッセージのイベントは発生せず、そのようには機能しません… :frowning: