Slack 統合でスレッドを親トピックにオプションで紐付ける機能

これについて考え、chat.postMessage Slack API ドキュメントを読んだ結果、私の長々とした説明をより単純なものに簡略化できると考えました。

現在、follow ではなく watch のみがスレッド応答を選択できる機能を持っていますが、その仕組みについてはまだ調査中です。あるいは、@david さん、優先順位を mutethreadwatchfollow とする新しい thread ルールフィルターを導入し、そのルールを trigger_notification に流してルールに応じた動作を実現するのはどうでしょうか?

  1. watch がスレッド化するように設定されている場合(あるいは thread ルールが定義されている場合)、新しい投稿の通知を Slack チャンネルに送信する際、その投稿トピックに Slack の ts が関連付けられていれば、その ts 値を thread_ts として設定し、該当する Slack スレッドに投稿します。

  2. 新しい投稿の通知を Slack チャンネルに送信する際、その投稿トピックに ts が関連付けられていない場合は、トピックに対して返されたレスポンスの ts を保存します(これにより、将来そのトピックへの投稿を watch がスレッド化するように設定されている場合にスレッド化できます)。

  3. post thread :thread_url コマンドを使用する際、作成されるトピックにスレッドの ts を保存します。これはスレッド化された watch ルールでのみ使用されます。

現在の考えと懸念点は以下の通りです:

  1. ルールごとにスレッドへの投稿を決定する方法。現時点では新しいフィルターが最も簡単だと考えられますが、何か見落としているかもしれません。

  2. 元の Slack 投稿 URL とスレッド ID をトランスクリプトフローに渡す処理が、現在最も不明確です。これを実現するには、プロバイダーごとのスレッド ID をどこかに追加し、投稿を保存するまで保持する必要があるようです。現在は Slack の ts に対してのみ実装しますが、スレッド機能を備えた他のチャット統合も想定されます。

  3. 投稿については、一般的な DiscourseChat のカスタムスレッドフィールドではなく、Topic に Slack 固有のカスタムフィールドとして Slack の ts を保存する必要があると考えます。

「いいね!」 1