Slack 環境を設定する
学習の目的
このプロジェクトでは、次のことを行います。
- Trailhead Slack Playground を設定する。
- Slack コマンドラインインターフェース (CLI) を設定する。
- Bolt for Java Script フレームワークを使用して Slack アプリケーションを構築する。
- Slack アプリケーションのシンプルなインタラクティブ機能を作成する。
- Slack CLI を使用して Slack アプリケーションをリリースする。
始める前に
このプロジェクトを開始する前に、次のバッジを完了することをお勧めします。このプロジェクトは、これらのバッジで学習する概念に基づいています。
このプロジェクトでは、複数の環境とツールを使用して、Slack Bolt for JavaScript フレームワークを使用するアプリケーションを構築します。作業を完了するには、ローカル環境に次のコンポーネントを用意する必要があります。
Bolt とは
Bolt は Slack の最新プラットフォーム機能を使用して Slack アプリの構築を容易にする開発フレームワークです。型に関係なく、Slack からの要求を処理するときに共通のパターンを有効にするリスナーインターフェースを使用しています。今回のプロジェクトでは、Bolt for JavaScript フレームワークを使用してアプリを構築します。
Bolt には OAuth サポートやイベントの検証などがデフォルトで組み込まれており、ワークフローの自動化のような機能の簡素化インターフェースがあります。このプロジェクトで、Slack の API の概要、Bolt のリスナーパターン、Bolt for JavaScript アプリの作成について学べます。
Slack API の概要
Bolt を使用して構築する前に、アプリケーションプログラミングインターフェース (API) の概要を理解しておきましょう。API について詳しくない場合は、モジュールの冒頭で参照した、アプリのしくみの基本がわかる「API の基本」モジュールを参照することを強くお勧めします。
Slack アプリは、Slack でのデータの読み取り、書き込み、更新を可能にするさまざまな API にアクセスできます。アプリで最もよく使用される API は、Web API と Events APIの 2 つです。Slack は Events API を使用してアプリにイベントを送信します。アプリは Web API を使用して Slack にインタラクションを返します。
Events API
Events API は、イベント登録を使用して JSON ペイロードを HTTP を介してアプリに送信します。アプリはイベントを受信すると、ペイロードを確認し、実行するアクションを決定します。イベントは、チャンネルにメッセージが投稿された、ユーザーがアプリケーションのホームタブを開く、新しいユーザーがワークスペースに参加するなど、ワークスペース内で起こっているあらゆる事柄を指します。Events API 種別の詳細なリストは Slack API サイトを参照してください。
Bolt には、イベントを受信してアプリのリスナーに転送したり、ワークスペースや関連ユーザーまたはチャンネルといった役立つ情報を公開したりするヘルパーが組み込まれています。こうしたヘルパーにより、アプリが適切に機能し、適切な場所とタイミングでユーザーとやり取りできるようになります。リスナーについては、このプロジェクトの後半で説明します。
Web API
Web API は、チャンネル、会話、イベントなど、Slack の API のオブジェクト種別を操作するために、類似の呼出規約を使用する HTTP メソッドのコレクションです。この操作には、チャンネルやほかのアプリサーフェスへのさまざまなインタラクティブメッセージの送信や、ユーザーリストのようなワークスペース情報の照会が含まれます。Web API メソッドの詳細なリストは Web API メソッドに関するページを参照してください。Bolt には、Web API 要求の応答の呼び出しと処理を簡素化するレート制限処理や再試行ロジックといった機能を持つクライアントが組み込まれています。
さらに、ワークスペースの管理やセキュリティ監査の実行などのニッチなユースケースについては、「リソース」セクションにあるリンク先で追加の API に関する情報を確認できます。
Trailhead Slack Playground を取得する
Bolt を実際に使ってみましょう。Trailhead は Slack 開発者プログラムと統合されています。このため、ハンズオン学習向けに設計された特別な Slack Playground が用意されています。Trailhead アカウントを初めて接続すると、Slack 開発者プログラムにサインアップされ、豊富な Slack 開発リソースにアクセスできるようになります。
詳細は後で説明します。まず、Slack Playground を起動して実行します。まだ Trailhead Slack Playground がプロビジョニングされていない場合は、次の手順を実行します。すでに接続されている場合は、このページの「Challenge」セクションに進み、Sandbox を起動します。
- このページにある [Challenge] セクションの [Verify Step (ステップを確認)] と表示されているところまでスクロールダウンします。
- デフォルトで、Trailhead の主メールアドレスが選択されています。Trailhead アカウントに関連付けられているもの以外のメールアドレスを使用する場合は、メールのドロップダウンをクリックして希望するアドレスを選択します。
- [I accept the Slack Developer Terms of Service. (Slack 開発者のサービス利用規約に同意します。)] の横にあるチェックボックスをオンにします。希望する場合は、Slack 開発者向けニュースレターに登録するチェックボックスをオンにできます。
![[Authorize access to your Slack Playground to complete this challenge (Slack Playground へのアクセスを承認して、この Challenge を実行してください)] モーダル。メールアドレス (learningfun@gmail.com) が選択され、両方のチェックボックスがオンになっています。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/develop-a-slack-app-with-bolt/set-up-your-slack-environment/images/ja-JP/a4889f026b0495643fe84bb42028aff6_kix.75hlfy5akcff.png)
-
[Create Slack Playground (Slack Playground を作成)] をクリックします。しばらくすると、Slack 開発者プログラムの利用規約ページが表示されます。
-
[I Agree (同意します)] をクリックします。再び Trailhead が表示されます。これで Slack Playground が接続されました。
![[Review the terms of service (利用規約を確認します)] モーダル](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/develop-a-slack-app-with-bolt/set-up-your-slack-environment/images/ja-JP/46c4b6826e24f1fde1724fbc35ae1257_kix.e5mjqr8z4app.png)
- もう一度 [Challenge] セクションまでスクロールダウンします。[Launch (起動)] をクリックすると、新しいタブに Playground が開きます。
![アカウントの使用確認と、Slack Playground を [Launch (起動)] または [Disconnect (切断)] するオプション](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/develop-a-slack-app-with-bolt/set-up-your-slack-environment/images/ja-JP/b8bfa6eeccb793d3ef32308b8faaa72e_kix.w4lues6s1e7x.png)
それでは、Playground に移動しましょう。
新しいチャンネルを作成する
今回のシナリオは次のとおりです。あなたはオーガナイゼーションの頼れる Slack アプリ開発者です。最近、オンボーディングチームに声をかけられました。チームは、自動化された楽しい方法で新しいチームメンバーを歓迎したいと考えています。そこでチームと一緒に要件を確認したところ、シンプルなアプリが適しているようです。ただし、必ずしも「シンプルさ」イコール「簡単」ではないことをあなたはわかっています。
メモを再び確認します。新しいチームメンバーには、必要な情報を収集し、取得するチャンネルが必要です。そのチャンネルで、アプリとメンバーがやり取りします。
- Slack Playground で、[Add channels (チャンネルを追加する)] の横にある + をクリックします。
-
[Create a new channel (新しいチャンネルを作成)] をクリックします。
![[Add channels (+ チャンネルを追加)] メニューが表示され、[Create a new channel (新しいチャンネルを作成)] オプションが強調表示されます。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/develop-a-slack-app-with-bolt/set-up-your-slack-environment/images/ja-JP/d8d49b91660df5923607feeef0856d2a_kix.90u3cjeck9ab.png)
- テンプレートメニューから [New hire onboarding (新入社員研修)] を選択します。
- 次に、[Next (次へ)] をクリックします。
- すべてそのままにします。[Use Template (テンプレートを使用)] をクリックします。
- チャンネルに
welcome-new-team-membersと名前を付けます。
- [Visibility (可視性)] が [Public (パブリック)] に設定されていることを確認します。
-
[Create (作成)] をクリックします。
- メンバーをチャンネルに追加するよう要求されたら、[Skip for now (後でする)] をクリックします。しばらくすると、Slack は事前構築されたキャンバスとワークフローを含むオンボーディングチャンネルを生成します。

テンプレートを利用したことで、主要なリソースを含むチャンネルをすばやく立ち上げることができました。このチャンネルで、オンボーディングチームは連絡事項を伝えたり、Q&A イベントを開催したりして、メンバーが簡単に情報を把握できるようにします。新しいアプリの処理の大半がここで行われます。次のステップでは、Slack コマンドラインインターフェース (CLI) を使用してアプリケーションを作成します。
