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開発入門【第2回】Google Colabで作るソケットモード対応おうむ返しBot

Posted at

シリーズ紹介

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

第2回では、Google Colabを利用してソケットモード対応のおうむ返しBotを実装し、Slack上で動作確認する方法を解説します。


前提条件

この記事を進める前に、以下が準備できていることを確認してください。

  • Slackアプリの作成とソケットモードの設定が完了していること
    (未完了の場合は、第1回の記事を参照してください)
  • Googleアカウントを持っていること
    (Google Colabを使用するため)

1. Google Colabのセットアップ

1.1 新しいノートブックの作成

  1. Google Colabにアクセスし、新しいノートブックを作成します

1.2 環境変数の設定

Slack APIトークンをGoogle Colab上で安全に使用するため、環境変数を設定します。

  1. 左サイドメニューから 「鍵アイコン(シークレット)」 をクリックします
  2. 「新しいシークレットを追加」 をクリックして、以下のキーと値を入力します
    • キー: SLACK_BOT_TOKEN
      値: xoxb-あなたのBotToken

    • キー: SLACK_APP_TOKEN
      値: xapp-あなたのAppToken

スクリーンショット 2025-01-29 22.28.10.png
スクリーンショット 2025-01-29 22.31.40.png
スクリーンショット 2025-01-29 22.34.20.png

1.3 必要なライブラリのインストール

slack_boltライブラリをインストールします。
slack_boltは、Slackアプリケーションを簡単に構築するためのPythonフレームワークです。

!pip install slack_bolt

image.png
image.png


2. おうむ返しBotの実装

2.1 コードの記載

以下のコードをGoogle Colabに記載して実行します。

from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
from google.colab import userdata

# Slackアプリを初期化
app = App(token=userdata.get("SLACK_BOT_TOKEN"))

# メンションイベントをキャッチしてオウム返し
@app.event("app_mention")
def echo_message(event, say):
    say(event["text"])

# ソケットモードでアプリを起動
if __name__ == "__main__":
    SocketModeHandler(app, userdata.get("SLACK_APP_TOKEN")).start()

image.png
image.png

2.2 コードの説明

  • シークレットキーには以下のコードでアクセスできます
from google.colab import userdata
userdata.get('secretName')
  • App: Slackアプリを初期化
  • @app.event("app_mention"): メンションイベントを検知して応答
  • say(event["text"]): 受け取ったメッセージをそのまま返す
  • SocketModeHandler: ソケットモードを使用してアプリを実行

eventの中身について

eventはSlackから送信されるイベントデータで、メンションやメッセージに関する情報が含まれています。主なフィールドは以下の通りです。

フィールド 説明
type イベントの種類(例: app_mention
user メッセージを送信したユーザーのID
text メッセージの本文
ts メッセージのタイムスタンプ
channel メッセージが投稿されたチャンネルのID

4. 動作確認

SlackでBotをメンションして、正しくオウム返しされるか確認します。

  1. SlackでBotが参加しているチャンネルにメンションします
    image.png
  2. メッセージがそのまま返答されれば成功です
    image.png
    image.png

5. 実行の停止

Botの実行を停止するには、Google Colabの停止ボタンをクリックします。

image.png

おわりに

これでGoogle Colabを利用したソケットモード対応のおうむ返しBotの実装が完了しました。次回は、Slack BotにGeminiを搭載する方法を解説します。

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?