Bolt を使用して Slack アプリを作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- どのような場合にサンプルコード、ツール、リソースを使用するかを特定し、助言する。
- どのような場合に Bolt を使用して Slack アプリを作成するかを助言する。
このモジュールでは、アプリを迅速に作成できる Slack の公式開発フレームワークであり Bolt について学習します。設計を実現するためのファーストパーティソフトウェア開発キット (SDK)、フレームワーク、構築ツールについて確認します。また、より効率的で簡単に設計を作成するためのライブラリ、ドキュメント、コードサンプル、チュートリアル、ガイドについても確認します。
Bolt の概要
Bolt は最新のプラットフォームと API をラップしており、組み込みアプリやサーバー設定、トークン検証、型サポートが含まれています。Bolt は Java、JavaScript、Python で使用できます。
シンプルなインターフェースで、メッセージの作成、Web API コールの送信、イベントコールバックのリスニング、インタラクティビティの処理など、一般的なアプリ機能が提供されます。Bolt ではファーストパーティ SDK と OAuth ヘルパーによって構築が簡略化されるため、開発者は設計に専念できます。
Slack コマンドラインインターフェース (CLI) を使用して、Bolt for JavaScript や Bolt for Python を使用したアプリ開発を合理化することもできます。CLI については単元 2 で詳しく説明します。
Bolt の使用は必須ではありませんが、使用することで作業が容易になります。Bolt では各言語の SDK を基盤としたアプリフレームワークが提供され、迅速に Slack アプリを作成できます。言わば、Bolt は「バッテリー内臓」のアプリ作成フレームワークです。
ファーストパーティ SDK
公式 Slack SDK を使用することで、貴重な開発時間を節約できます。Slack プラットフォーム上でアプリを作成して使用するための一般的な機能に対して、Java、JavaScript (NodeJS 経由)、Python の SDK によって各言語のラッパーが提供されます。この 3 つの言語のいずれかで Slack アプリを開発している場合、このファーストパーティ SDK を使用してみることを強くお勧めします。これらは最新の状態に保たれ、最新のプラットフォーム機能がサポートされています。
アプリの基盤を自分で構築する場合でも、SDK を使用することで定型コードに要する時間を節約できます。独自の認証を構築したり、Web API コール用の HTTP 要求を手動で生成したりする代わりに、組み込み SDK クラスおよびメソッドを使用できます。
Slack は GitHub でホストされるオープンソース SDK を提供しています。お客様からのフィードバックや貢献をいつでも歓迎します。
アプリのブループリント
アプリのブループリントは、一般的なアプリ機能を処理するための詳細な手順を説明するガイドです。承認フロー、通知、アカウントバインディングなどの目的に合わせたアプリのブループリントを参照できます。各アプリのブループリントには、包括的な手順、コードサンプル、わかりやすいフロー図が含まれています。
アプリのブループリントは GitHub でホストされ、無料で入手できます。
ファーストパーティ SDK とリソースに加えて、Slack ではアプリの開発に役立つユーティリティも提供されています。そのうちの 2 つである Block Kit と Slack 開発者ツールについて見てみましょう。
Block Kit
Block Kit は Slack のメッセージ、モーダル、App Home のサーフェスを柔軟に管理できる UI フレームワークです。
Block Kit サーフェスは、1 つ以上の積み上げ可能な UI セグメント (テキスト、画像、入力など) であるブロックで構成されており、ブロックの配置や表示をカスタマイズできます。Block Kit は最終的には JSON 形式のペイロードを使用して表現され、HTTP 要求によってアプリから Slack に送信されます。
Block Kit ビルダー
アプリのインタラクションのプロトタイプをすばやく作成し、ブロックを選択し、未処理のペイロードを実行中に編集できます。
Block Kit ビルダーを使用すると、アプリの開発者やステークホルダーが Block Kit ペイロードの生成を簡単に試すことができます。テンプレートから作業を開始して、作成したものを Slack に送信してテストし、チームからフィードバックを収集できます。たとえば、Slack に送信する前にデスクトップクライアントとモバイルクライアントでのメッセージをプレビューできます。
ブロックを配置して積み上げることで、Slack でのレイアウトのプロトタイプをすばやく作成できます。準備ができたら、Block Kit ビルダーによって JSON ペイロードが作成されます。あとはそれをアプリのコードに追加するだけです。
実際に試してみる
Block Kit ビルダーについて学習するには、実際にツールにアクセスして、何ができるかを試してみるのが一番です。
- 定義済みテンプレートを参照してアイデアを得る。
- メッセージ、モーダル、App Home 間でサーフェスプレビューを切り替える。
- デスクトップクライアントとモバイルクライアント、ライトモードとダークモードを切り替えて、ユーザーの Slack 設定に応じて作成内容がどのように表示されるかをプレビューする。
- ツールバーの [Send to Slack (Slack に送信)] ボタンを使用して、メッセージ、モーダル、App Home が Slack でどのように表示されるかをテストする。
Slack 開発者ツール
Slack 開発者ツール (SDT) は、開発者がメッセージペイロードを検査できる Slack アプリです。API ドキュメント、プラットフォームステータスや、ユーザー、ワークスペース、Enterprise+ 組織の ID などの有用な情報を確認することもできます。
SDT には、App Home、メッセージショートカット、スラッシュコマンドなどのいくつかのエントリポイントが含まれています。
SDT を使用すれば、Slack ワークスペースから離れずに、Slack API ドキュメントにすばやくアクセス ( /sdt スラッシュコマンドを使用) したり、メッセージの背後にあるコードを検査 ([inspect (検査)] アクションを使用) したりできます。その他の SDT スラッシュコマンドには次のようなものがあります。
- /sdt docs [メソッド名]: 指定されたメソッドの簡潔な概要を取得します。
- /sdt test_webhook [Web フック url]: Slack Web フック URL にテストペイロードを送信します。
- /sdt help: SDT を使用するためのコマンドのリストとサポート情報を取得します。
Slack 開発者ツールは、SDT アプリがインストールされているワークスペースで作業するすべてのユーザーが使用できることに注意してください。
