新しいSlackのPlatformを試す
Slackの次世代プラットフォームを試してみた – TravelBook Tech Blogの記事を読んでSlackの新しいアプリ開発Platformが面白そうだったので試してみたメモ。
前提
前提条件としてSlack Platformは有料アカウントであることかつWorkspaceのadmin権限を持っている必要がある。まだBetaなので仕方ない。
セットアップ
CLIをinstallする
$ curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
認証
$ slack login
slack login
をすると下記のような認証用コマンドが表示される。Slack WorkspaceのDM or どこかのChannelでこのコマンドを叩く。
/slackauthticket xxxxxxxxxxxxxxxxxxxxxxxxx
成功するとcredentialsが生成される。/Users/XXXXXX/.slack/credentials.json
へと配置される。中身はこんな感じだった。
{
"workspace名": {
"token": "xoxoxoxoxoxo......",
"team_domain": "hoge",
"team_id": "AAAAAAA",
"user_id": "BBBBBBB",
"last_updated": "2022-10-01T11:11:11.111111+09:00",
"refresh_token": "oxoxoxoxo.......",
"exp": 1234567890
}
}
アプリを作成する
プロジェクトを作成する
下記のコマンドを叩くだけ。とりあえずHello Worldを選んでみる。
$ slack create my-app
? Select a template to build from:
> Hello World
A simple workflow that sends a greeting
Scaffolded project
A solid foundation to start building upon
Blank starter project
A, well.. blank project
各種コンポーネントについて
Slackアプリを作るにはFunctions/Workflows/Triggersというコンポーネントを理解しておく必要がある。
Functions
- ビジネスロジックを書く場所
Workflows
- Functionsをひとまとめにする場所
Triggers
- 実行するWorkflowsをまとめる場所
Triggerとして登録
作成したアプリを下記のコマンドでbotとして登録する。appのタイプはdevを選んだ。devじゃない方を選ぶとSlackのサーバーにデプロイされる感じ。
$ slack trigger create --trigger-def "triggers/greeting_trigger.ts"
? Choose an app my-app (dev)
App ID: N/A Status: Not installed
Workspace: hoge Team ID: TXXXXXXXX
📚 App Manifest
Created app manifest for "my-app (dev)" in "HOGE.Inc." workspace
🏠 Workspace Install
Installed "my-app (dev)" app to "HOGE.Inc." workspace
Finished in 1.3s
⚡ Trigger created
Trigger ID: XXXXXXXXX
Trigger Type: shortcut
Trigger Name: Send a greeting
URL: https://slack.com/shortcuts/XXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxxxx
サーバーの実行
下記でローカルサーバが立ち上がる。これでアプリへの変更がリアルタイムにsyncされる。
$ slack run
? Choose a workspace hoge Team ID: TXXXXXXXX
App ID: AAAAAAAAAAA Status: Installed
Updating dev app install for workspace "HOGE,Inc."
✨ XXXXXXX of HOGE,Inc.
Connected, awaiting events
File change detected: /Users/XXXXXXX/dev/hello-world/workflows/greeting_workflow.ts, reinstalling app...
App successfully reinstalled
試す
先ほどTrigger登録の時に生成されたshortcuts URLをCopyしてSlackのPublicチャンネルに投稿する。するとアプリが起動するはず。
次のステップ
Hello Worldはこれで終わり。あとは各種コンポーネントについてDocsを読んでコードを書いていくのが良さそう。主要なやつだけまとめておく。
- Functions
- Workflows
- Triggers
- Datastores
- 簡易データベースみたいなものが使える。
- Datastores | Slack
- CLIコマンド
感想
Slackアプリの開発体験がかなり良くなった気がする。Functions/Workflows/Triggerのブロックの関係を理解するのは少し面倒だけど、CLIでプロジェクトをscaffoldしローカルサーバを立ち上げるだけで簡単にbotアプリが動かせる。
デプロイに自前のサーバが不要でSlackのサーバに配置できるのもありがたい(というかこれが一番嬉しいかも)。
これだけアプリ開発の敷居が低いとだいぶおもちゃとして遊びやすいな〜と思った。
リンク
Build the future of work with the new Slack platform | Slack
Slackの次世代プラットフォームを試してみた – TravelBook Tech Blog
Discussion