Closed5

Slack Platform でスレッドに返信する bot の試作

chocochoco

早速アプリを作成してみる。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
chocochoco

次の項目を組み合わせて workflow を作ると理解

  • functions(workflow 内で行われる実際の処理)
  • triggers(workflow のエントリポイント)
  • workflows(任意の処理の集合)

functions

Slack 側で提供されている Built-in functions と、ユーザ側で実装する Custom functions がある。
今回やりたいことの スレッドに返信する については ReplyInThread という機能が提供されているのでこれを使えば良さそう。

https://api.slack.com/automation/functions
https://api.slack.com/automation/functions/custom

triggers

4 種類の trigger type がある。

  • Link triggers
  • Scheduled triggers
  • Event triggers
  • Webhook triggers

今回は bot となるアプリに対してメンションされたときに動作してほしいので Event triggers にある app_mentioned を使うことで実現できそう。(他の trigger については未調査)

https://api.slack.com/automation/triggers
https://api.slack.com/automation/triggers/event

workflows

DefineWorkflowaddStep を使って workflow を作成する。
inputs、outputs を設定して複数のステップを組み合わせた workflow を作ることもできる。

https://api.slack.com/automation/workflows

このスクラップは2023/06/21にクローズされました