🌊

新しいSlackのPlatformを試す

2022/10/02に公開

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を読んでコードを書いていくのが良さそう。主要なやつだけまとめておく。

感想

Slackアプリの開発体験がかなり良くなった気がする。Functions/Workflows/Triggerのブロックの関係を理解するのは少し面倒だけど、CLIでプロジェクトをscaffoldしローカルサーバを立ち上げるだけで簡単にbotアプリが動かせる。

デプロイに自前のサーバが不要でSlackのサーバに配置できるのもありがたい(というかこれが一番嬉しいかも)。

これだけアプリ開発の敷居が低いとだいぶおもちゃとして遊びやすいな〜と思った。

リンク

Build the future of work with the new Slack platform | Slack
Slackの次世代プラットフォームを試してみた – TravelBook Tech Blog

Discussion