🐦
Slackでオウム返しをするBotを作る
はじめに
ほんとにやりたいことはRAGでAIエージェントを作ることですが、一旦基礎として一番簡単なオウム返しBotを作ってみます。
前提
- サーバー側の使用言語は Python、ローカルで起動
- Slack が使えること
実装
Slack アプリの作成
- (Slack API)[https://api.slack.com/apps]にアクセス
-
Create New Appを選択
-
From a manifestを選択
- アプリを入れたい Slack のワークスペースを選択
- Manifest ファイルを作成する(name だけいじりまいた)
-
Createを押して完了
Slack アプリの設定
- Socket Mode の有効化
- 左側メニューバーより
Socket Modeを選択 -
Enable Socker Modeを on にする -
Token Nameに任意の名前を入れる -
scopeはもともとあるものにする(connections:write) - Generate を押して、Token を控えておく
- 左側メニューバーより
-
Bot Token Scopesの設定- メニューバーから
OAuth & Permissions -
Bot Token ScopesでAdd an OAuth Scopeをクリック -
chat:writeを選択
- メニューバーから
- トリガーの設定
- 左側メニューバーより
Event Subscriptions -
Enable Eventsを on にする -
Subscribe to bot eventsからAdd Bot User Eventを選択 - イベントリストから
app_mentionを選択(メンションされた時に動くようにする) -
Save Changeをクリック
- 左側メニューバーより
- アプリのインストール
- メニューバーから
Install App - Install to Workspace を選択
- 許可を選択
- Token を控えておく
- メニューバーから
補足: アプリの装飾
アイコンなどをつけるとそれっぽくなりますね。

サーバーの設定
ローカルの適当な場所で実行してください。
- 仮想環境の作成
- 例: venvで作る場合
python -m venv .venv
- 仮想環境に入る
- (Macの場合)
source .venv/bin/activate
- (Macの場合)
- ライブラリのインストール
pip install slack-bolt
- 環境変数の設定
export SLACK_APP_TOKEN="xapp-********"export SLACK_BOT_TOKEN="xoxb-********"
- app.py の作成
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
import os
app = App(token=os.environ.get("SLACK_BOT_TOKEN"))
@app.event("app_mention")
def handle_app_mention_events(event, say):
say(event["text"])
if __name__ == "__main__":
SocketModeHandler(app, os.environ.get("SLACK_APP_TOKEN")).start()
- 立ち上げ
python app.py
動作確認
動いた!

さいごに
次はAWSを使って作ってみます!
Discussion