この記事はプログラミングを始めて5ヶ月の初心者が書いています。間違い等あるかもしれません
#目的
Slackで動くBotを作成する
(Botの機能の実装に関しては次回以降)
前回の記事はこちら。
#対象読者
とりあえずSlackで動くBotを作ってみたい人!
#方法
###・ 作業ディレクトリ(作業場所)の作成
1 ターミナルでBot制作に使う新しいディレクトリを作成する。
$ mkdir bolt-app
$ cd bolt-app
2 Python仮想環境を使いたい場合は、以下のコマンドを実行する。(私はしませんでしたが…)
$ python3 -m venv .venv
$ source .venv/bin/activate
###・ テキストエディターで行う準備
- VSC(Visual Studio Code)を開き、
bolt-app
ディレクトリを開く。
- ファイル追加ボタンをクリックする。
- 「.env」ファイルと「app.py」ファイルを作成する。
※.envファイルは環境変数を指定し、app.pyはBotの中身を作成するためのファイル。
###・ 「.env」ファイルに環境変数を指定する。
SLACK_BOT_TOKEN変数に「xoxb-」ではじまるボットトークンを、SLACK_APP_TOKEN変数に「xapp-」ではじまるアプリレベルトークンを代入し、SLCK_BOT_TOKENとSLACK_APP_TOKENを定義する。
###・ 「app.py」ファイルにBotを起動させるためのコードを書く。
1 ターミナル上で環境変数を扱うためのライブラリ python-dotenv
をインストールする。
$ pip install python-dotenv
もしくは
$ pip3 install python-dotenv
2 環境変数を扱うためのライブラリをimportする。
#環境変数を扱うためのライブラリ
import os
from dotenv import load_dotenv
3 「.env」で定義した環境変数を使えるようにする。
#「.env」で定義した環境変数を使えるようにする。
load_dotenv()
4 Botを作るのに必要な slack_bolt
パッケージのインストールを行う。
$ pip install slack_bolt
もしくは
$ pip3 install slack_bolt
5 Botを動かすためのライブラリをimportする。
#Botを動かすためのライブラリ
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
6 環境変数を指定し、アプリを起動させるコードを作る
環境変数の指定の仕方: os.environ['変数名']
※os.environ.get('変数名')でもできるかも
#アプリの初期化
app = App(token=os.environ['SLACK_BOT_TOKEN'])
#アプリの起動
if __name__ == '__main__':
SocketModeHandler(app, os.environ['SLACK_APP_TOKEN']).start()
※何でこう書くか?は私もあまりわかっていませんので、よくわかんなくてもこう書けばアプリ(Bot)が動くんだ!と理解しておけばOKです
###・ アプリ(Bot)を起動させてみよう!
ターミナルで、以下のコマンドを入力する。
$ python3 app.py
Bolt app is running!
と正常にアプリ(Bot)が動作すればおしまいです!おめでとうございます
###・エラーの対処
次のような長いエラーが出てきたら…
Failed to send a request to Slack API server
urllib.error.URLError:
urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)
私も詳しいことはわからないのですが、SSL認証がうまくいっていないらしい。
私の場合は以下のようにしたら解決しました。
このやり方が良いやり方なのかはよくわかりませんので注意
実行される場合は自己責任でお願いします
1 ターミナルで、 certifi
をインストールする。
$ pip install certifi
もしくは
$ pip3 install certifi
2 ターミナルで以下のコマンドを入力し、出力結果をコピーする。
$ python3 -m certifi
〜 site-packages/certifi/cacert.pem ←こんな感じのものが出力されるのでコピーする。
3 「.env」ファイルを開き、SSL_CERT_FILE変数に、2でコピーしたものをペースト(引用符のつけ忘れに注意)・代入し、SSL_CERT_FILEを定義する。
これでもう1度、以下のコマンドを実行すると、
$ python3 app.py
Bolt app is running!
と正常にアプリ(Bot)が動作するはずです!おめでとうございます
#最後に
お疲れ様でした!以上で、Botの初期設定は終わりです
次回は、Slackbotの機能部分を制作していきます
#参考