Closed5
Slack Platform でスレッドに返信する bot の試作
Slack Platform に新機能が追加されてコードベースでの workflow 開発が行えるようになった。
2023 年 4 月 24 日 〜 2023 年 10 月 31 日はプロモーション期間なので料金が発生しない。
新機能を使うにあたり、Slack CLI が必要なのでインストールする。
セットアップ手順がいくつかあるのでドキュメントに沿って行っていく。
いくつかのユースケースを想定したサンプルコードが公開されている。
実装に困ったら読んでみるといいかも。
deno-
から始まるリポジトリが対象のはず。
追記
ドキュメント内にリンクがあった
早速アプリを作成してみる。Quick Start にあるコマンドをとりあえずそのまま使う。
slack create example-slack-app --template https://github.com/slack-samples/deno-starter-template
作成されたディレクトリは以下。
❯ exa ./example-slack-app/ -F -T -L 1 --group-directories-first
./example-slack-app/
├── assets/
├── datastores/
├── functions/
├── triggers/
├── workflows/
├── deno.jsonc
├── deno.lock
├── import_map.json
├── LICENSE
├── manifest.ts
├── README.md
└── slack.json
次の項目を組み合わせて workflow を作ると理解
- functions(workflow 内で行われる実際の処理)
- triggers(workflow のエントリポイント)
- workflows(任意の処理の集合)
functions
Slack 側で提供されている Built-in functions と、ユーザ側で実装する Custom functions がある。
今回やりたいことの スレッドに返信する
については ReplyInThread
という機能が提供されているのでこれを使えば良さそう。
triggers
4 種類の trigger type がある。
- Link triggers
- Scheduled triggers
- Event triggers
- Webhook triggers
今回は bot となるアプリに対してメンションされたときに動作してほしいので Event triggers にある app_mentioned
を使うことで実現できそう。(他の trigger については未調査)
workflows
DefineWorkflow
と addStep
を使って workflow を作成する。
inputs、outputs を設定して複数のステップを組み合わせた workflow を作ることもできる。
このスクラップは2023/06/21にクローズされました