1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Slack Bot開発入門【第1回】ソケットモード対応Slackアプリの設定方法

Last updated at Posted at 2025-02-02

シリーズ紹介

この記事は、 Slack Bot開発入門シリーズ(全3回) の第1回です。Slackのソケットモードを活用し、Google Colabを使って手軽にBotを開発する方法をステップごとに解説します。シリーズの各回の内容は以下の通りです。

第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の管理画面にアクセス

  1. まずはSlack APIの管理ページにアクセスします
    スクリーンショット 2025-01-26 14.58.00.png
  2. 「Create New App」 ボタンをクリックします
    スクリーンショット 2025-01-26 15.04.36.png
    image.png
  3. アプリの設定を記載したマニフェストファイルをつかった作成(「From a manifest file」)もできますが、今回は1から作成したいため、 「From scratch」 を選択します。
    スクリーンショット 2025-01-26 15.09.41.png
    スクリーンショット 2025-01-26 15.14.17.png

2. Slackアプリの基本情報を設定

  1. アプリ名を入力します。(例: bot)
    スクリーンショット 2025-01-26 15.17.19.png
  2. アプリを作成するワークスペースを選択します。(例:test)
    スクリーンショット 2025-01-26 15.19.49.png
  3. 「Create App」 をクリック
    スクリーンショット 2025-01-26 15.21.05.png
    Slackアプリが作成され、設定画面に移ります。
    スクリーンショット 2025-01-26 15.23.43.png
    image.png

3. スコープの設定

Slack Botに必要な権限(スコープ)を設定します。

  1. 左サイドメニュー内の 「OAuth & Permissions」 セクションへ移動します
    スクリーンショット 2025-01-26 15.23.43.png
    image.png
  2. 真ん中ほどまで下にスクロールし、 「Scopes」 というセクションへ移動します
    image.png
  3. 「Bot Token Scopes」「Add an OAuth Token」 をクリックして権限を追加します
    本記事では、以下のスコープを追加します。その他のスコープは公式ページでご確認ください。
    • chat:write : チャットにメッセージを送信するための権限
    • app_mentions:read : @メンションの読み取りを許可する権限
      スクリーンショット 2025-01-26 15.35.26.png
      スクリーンショット 2025-01-26 15.36.28.png
      スクリーンショット 2025-01-26 15.37.28.png
      スクリーンショット 2025-01-26 15.39.05.png
      スクリーンショット 2025-01-26 15.40.59.png
      スクリーンショット 2025-01-26 15.42.08.png
      スクリーンショット 2025-01-26 15.43.01.png

4. Bot Tokenの発行

  1. スコープが設定できたら、ページ上部の 「Install to "選択したワークスペース名"」(ここでは"test")をクリックして、ワークスペースにインストールします
    スクリーンショット 2025-01-26 15.44.58.png
  2. 作成したbotがワークスペースにアクセスできるように権限をリクエストされるので、 「許可する」 をクリックします
    スクリーンショット 2025-01-26 15.49.46.png
    インストールされると、 「Install to test」 上部に"xoxb-"から始まる 「Bot User OAuth Token」 が生成されます(このトークンは第2回で使用します)。
    ※画像ではBot User OAuth Tokenを公開していますが、記事作成後再生成しております。
    スクリーンショット 2025-01-26 15.55.44.png

5. ソケットモードの有効化

Slack Botがリアルタイム通信を行えるようにソケットモードを有効にします。

  1. 左サイドメニュー内の 「Socket Mode」 セクションへ移動します
    スクリーンショット 2025-01-26 16.03.46.png
  2. 「Enable Socket Mode」 右横のトグルをオンにします
    スクリーンショット 2025-01-26 16.05.07.png
    スクリーンショット 2025-01-26 16.07.26.png
  3. 「Token Name」 には適当な名前を入力します。(例:echo-bot)
    スクリーンショット 2025-01-26 16.10.06.png
  4. 「Generate」 をクリックします
    スクリーンショット 2025-01-26 16.10.59.png
    App Token(xapp-から始まるトークン)が生成されます(第2回で使用します)。
  5. 「Done」 をクリックして閉じます
    スクリーンショット 2025-01-26 16.12.09.png
    スクリーンショット 2025-01-26 16.12.09.png
    スクリーンショット 2025-01-26 16.14.31.png

6. イベントの設定

アプリがメンションされたことを検知するには、アプリがリッスンする"イベント"を設定する必要があります。イベントには今回設定する、「メンションされたとき」の他に、「メッセージが投稿されたとき」や「絵文字リアクションがつけられたとき」などがあります(Event一覧はこちら)。
この設定したイベントが発生した時に、そのイベント情報がアプリに送られるようになっています。

  1. 左サイドメニュー内の 「Event Subscription」 セクションに移動します
    スクリーンショット 2025-01-28 22.06.11.png
  2. 「Enable Events」 右横のトグルをオンにします
    スクリーンショット 2025-01-28 22.07.39.png
  3. 「Enable」 をクリックします
    スクリーンショット 2025-01-28 22.09.32.png
    スクリーンショット 2025-01-28 22.10.59.png
  4. 「Subscribe to bot events」 を開きます
    スクリーンショット 2025-01-28 22.12.36.png
    スクリーンショット 2025-01-28 22.14.41.png
  5. 「App Bot User Event」 をクリックし、以下のイベントを追加します
  • app_metion
    スクリーンショット 2025-01-28 22.14.41.png
    スクリーンショット 2025-01-28 22.16.40.png
    image.png
    スクリーンショット 2025-01-28 22.18.23.png
  1. 「Save Changes」 をクリックし、保存します
    スクリーンショット 2025-01-28 22.19.31.png
    image.png

7. チャンネルへのBot追加

  1. Slackを開き、作成したbotがワークスペースにインストールされていることを確認します

スクリーンショット 2025-01-29 22.52.29.png

  1. 次に適当なチャンネルにbotを追加します
    以下のコマンドを入力し、送信します。
/invite @bot

image.png

botがチャンネルに追加されました。
image.png


おわりに

次回はGoogle Colabを使用して、オウム返しBotの実装方法を解説します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?