Open9

Slack の次世代プラットフォーム

雪猫雪猫

新プラットフォーム

https://slack.com/intl/ja-jp/blog/developers/make-work-flow-faster-with-slacks-new-platform
https://slack.com/intl/ja-jp/help/articles/4409281126035-開発者向けの新しい-Slack-プラットフォームツール(ベータ版)

ドキュメント

公式には new Slack platform や Next-gen platform と書かれています。
Slack に用意されたサーバーで動かすことができます。
現在はパブリックβで有料のワークスペースでのみ使用できます。申請等は不要です。

https://api.slack.com/future

情報少ないですが日本語ページもあります。今は変更履歴しかなさそう。

https://api.slack.com/lang/ja-jp/future

雪猫雪猫

概要

Trigger, Workflow, Function の概念があります。
データは Datastore に保存します。
Slack CLI を使って開発やデプロイを行います。

Trigger
  + Workflow
    + Function
    + Function
    + Function
雪猫雪猫

Triggers

トリガー条件を満たしたときにワークフローを実行します。

https://api.slack.com/future/triggers

Trigger Type Use case
Link Triggers Slack のパブリックチャンネルからワークフローを実行
Scheduled Triggers 定期的にワークフローを実行
Event Triggers Slack のイベントが発生したときにワークフローを実行
Webhook Triggers URL が POST リクエストを受け取ったときにワークフローを実行
雪猫雪猫

チュートリアル (Mac)

https://api.slack.com/future/quickstart

Xcode

Deno のインストールに Homebrew を使用するため Xcode のライセンス確認をしておく必要があります。(必要に応じて)

sudo xcodebuild -license accept

インストールスクリプト

以下の3つをインストールしてくれます。
Windows はマニュアルインストールが必要なようです。

  • Slack CLI
  • Deno
  • Deno for Visual Studio Code (VS Code がインストールされていれば)
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash

規約への同意が必要な旨が表示されログインを促されます。

📄 Use of the Slack CLI should comply with the Slack API Terms of Service:
   https://slack.com/terms-of-service/api

✨ You're all set! Next, authorize your CLI in your workspace with slack login

ログイン

slack login を実行するとワークスペースで実行するコマンドが表示されます。

$ slack login

📋 Run the following slash command in any Slack channel or DM
   The command will open a prompt detailing the user permissions for you to approve

/slackauthticket <文字列>

Slack のチャンネルまたは DM に /slackauthticket <文字列> を投稿するとパーミッションのダイアログが出てきます。

ターミナルに戻るとクレデンシャルのパスが表示されています。

✅ You've successfully authenticated! 🎉 
   Authorization data was saved to /Users/snowcait/.slack/credentials.json

情報の確認

slack auth list
slack info
slack doctor

アプリの作成

slack create でテンプレートを選択するとアプリ名のディレクトリが作成されます。

slack create <アプリ名>

ローカルで実行してインストールするワークスペースを選択するとアプリがインストールされます。

cd <アプリ名>
slack run