シリーズ紹介
この記事は、 Slack Bot開発入門シリーズ(全3回) の第1回です。Slackのソケットモードを活用し、Google Colabを使って手軽にBotを開発する方法をステップごとに解説します。シリーズの各回の内容は以下の通りです。
- 第1回: ソケットモード対応のSlackアプリの作成と基本設定(本記事)
- 第2回: Google Colabを使ったオウム返しBotの実装方法
- 第3回: Geminiを搭載したチャットボットの開発
第1回では、Slack Botを開発するための基本設定、特にソケットモードの有効化とSlackアプリの作成手順について解説します。
ソケットモードとは?
Slack Botを開発する際、エンドポイント(Webhook)を使用する方法とソケットモードを使用する方法があります。
エンドポイント(Webhook)方式
- 概要: 公開URLを用意し、SlackがそのURLにHTTPリクエストを送信します
- メリット: 高速でシンプルな設計。外部サーバーにデプロイする場合に適しています
- デメリット: パブリックなURLを公開する必要があるため、セキュリティの管理が必要。ファイアウォール内の環境では設定が難しい場合があります
ソケットモード方式
- 概要: WebSocket接続を利用してSlackとリアルタイムで通信します
- メリット: 公開URLが不要で、ローカル環境やファイアウォール内でもBotを動作させることが可能。セキュリティリスクを軽減できます
- デメリット: エンドポイント方式に比べて若干のセットアップ手順が増えることがあります
本シリーズでは、より安全かつ手軽に開発を進められるソケットモードを使用します。
前提条件
Slack Botを作成するためには、以下が必要です。
-
Slackアカウントを持っていること
(持っていない場合は、Slack公式サイトで無料登録しましょう) -
Slackワークスペースがあること
(自分のワークスペースを作成するか、既存のワークスペースに参加していること)
Slackアプリの作成手順
1. Slack APIの管理画面にアクセス
- まずはSlack APIの管理ページにアクセスします
-
「Create New App」 ボタンをクリックします
- アプリの設定を記載したマニフェストファイルをつかった作成(「From a manifest file」)もできますが、今回は1から作成したいため、 「From scratch」 を選択します。
2. Slackアプリの基本情報を設定
3. スコープの設定
Slack Botに必要な権限(スコープ)を設定します。
- 左サイドメニュー内の 「OAuth & Permissions」 セクションへ移動します
- 真ん中ほどまで下にスクロールし、 「Scopes」 というセクションへ移動します
-
「Bot Token Scopes」 の 「Add an OAuth Token」 をクリックして権限を追加します
本記事では、以下のスコープを追加します。その他のスコープは公式ページでご確認ください。
4. Bot Tokenの発行
- スコープが設定できたら、ページ上部の 「Install to "選択したワークスペース名"」(ここでは"test")をクリックして、ワークスペースにインストールします
- 作成したbotがワークスペースにアクセスできるように権限をリクエストされるので、 「許可する」 をクリックします
インストールされると、 「Install to test」 上部に"xoxb-"から始まる 「Bot User OAuth Token」 が生成されます(このトークンは第2回で使用します)。
※画像ではBot User OAuth Tokenを公開していますが、記事作成後再生成しております。
5. ソケットモードの有効化
Slack Botがリアルタイム通信を行えるようにソケットモードを有効にします。
- 左サイドメニュー内の 「Socket Mode」 セクションへ移動します
-
「Enable Socket Mode」 右横のトグルをオンにします
-
「Token Name」 には適当な名前を入力します。(例:echo-bot)
-
「Generate」 をクリックします
App Token(xapp-から始まるトークン)が生成されます(第2回で使用します)。 -
「Done」 をクリックして閉じます
6. イベントの設定
アプリがメンションされたことを検知するには、アプリがリッスンする"イベント"を設定する必要があります。イベントには今回設定する、「メンションされたとき」の他に、「メッセージが投稿されたとき」や「絵文字リアクションがつけられたとき」などがあります(Event一覧はこちら)。
この設定したイベントが発生した時に、そのイベント情報がアプリに送られるようになっています。
- 左サイドメニュー内の 「Event Subscription」 セクションに移動します
-
「Enable Events」 右横のトグルをオンにします
-
「Enable」 をクリックします
-
「Subscribe to bot events」 を開きます
- 「App Bot User Event」 をクリックし、以下のイベントを追加します
7. チャンネルへのBot追加
- Slackを開き、作成したbotがワークスペースにインストールされていることを確認します
- 次に適当なチャンネルにbotを追加します
以下のコマンドを入力し、送信します。
/invite @bot
おわりに
次回はGoogle Colabを使用して、オウム返しBotの実装方法を解説します。