LoginSignup
3
2

More than 1 year has passed since last update.

初心者がPythonでSlackbotを作ってみた!2 〜Slackbot起動編〜

Last updated at Posted at 2021-11-15

この記事はプログラミングを始めて5ヶ月の初心者が書いています。間違い等あるかもしれません:bow_tone1:

目的

Slackで動くBotを作成する:robot::zap:
(Botの機能の実装に関しては次回以降)
前回の記事はこちら

対象読者

とりあえずSlackで動くBotを作ってみたい人!

方法

・ 作業ディレクトリ(作業場所)の作成

1 ターミナルでBot制作に使う新しいディレクトリを作成する。

$ mkdir bolt-app
$ cd bolt-app

2 Python仮想環境を使いたい場合は、以下のコマンドを実行する。(私はしませんでしたが…:mask:

$ python3 -m venv .venv
$ source .venv/bin/activate

・ テキストエディターで行う準備

  1. VSC(Visual Studio Code)を開き、bolt-app ディレクトリを開く。 vsc.png
  2. ファイル追加ボタンをクリックする。 vsc2.png
  3. 「.env」ファイルと「app.py」ファイルを作成する。 ※.envファイルは環境変数を指定し、app.pyはBotの中身を作成するためのファイル。 vsc3.png

・ 「.env」ファイルに環境変数を指定する。

SLACK_BOT_TOKEN変数に「xoxb-」ではじまるボットトークンを、SLACK_APP_TOKEN変数に「xapp-」ではじまるアプリレベルトークンを代入し、SLCK_BOT_TOKENとSLACK_APP_TOKENを定義する。
env.png

・ 「app.py」ファイルにBotを起動させるためのコードを書く。

1 ターミナル上で環境変数を扱うためのライブラリ python-dotenv をインストールする。

$ pip install python-dotenv

もしくは

$ pip3 install python-dotenv

2 環境変数を扱うためのライブラリをimportする。

app.py
#環境変数を扱うためのライブラリ
import os
from dotenv import load_dotenv

3 「.env」で定義した環境変数を使えるようにする。

app.py
#「.env」で定義した環境変数を使えるようにする。
load_dotenv()

ここまででこんな感じ
app1.png

4 Botを作るのに必要な slack_bolt パッケージのインストールを行う。

$ pip install slack_bolt

もしくは

$ pip3 install slack_bolt

5 Botを動かすためのライブラリをimportする。

app.py
#Botを動かすためのライブラリ
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

6 環境変数を指定し、アプリを起動させるコードを作る

環境変数の指定の仕方: os.environ['変数名'] ※os.environ.get('変数名')でもできるかも:rolling_eyes:

app.py
#アプリの初期化
app = App(token=os.environ['SLACK_BOT_TOKEN'])

#アプリの起動
if __name__ == '__main__':
    SocketModeHandler(app, os.environ['SLACK_APP_TOKEN']).start()

※何でこう書くか?は私もあまりわかっていませんので、よくわかんなくてもこう書けばアプリ(Bot)が動くんだ!と理解しておけばOKです:ok_woman_tone1:

ここまででこんな感じ
app2.png

・ アプリ(Bot)を起動させてみよう!

ターミナルで、以下のコマンドを入力する。

$ python3 app.py

:zap: Bolt app is running!

と正常にアプリ(Bot)が動作すればおしまいです!おめでとうございます:blush:

・エラーの対処

次のような長いエラーが出てきたら…

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認証がうまくいっていないらしい。
私の場合は以下のようにしたら解決しました。

このやり方が良いやり方なのかはよくわかりませんので注意 :warning: 実行される場合は自己責任でお願いします:bow_tone1:

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を定義する。
error.png

これでもう1度、以下のコマンドを実行すると、

$ python3 app.py

:zap: Bolt app is running!

と正常にアプリ(Bot)が動作するはずです!おめでとうございます:blush:

最後に

お疲れ様でした!以上で、Botの初期設定は終わりです:grin:
次回は、Slackbotの機能部分を制作していきます:sunglasses:

参考

関連

3
2
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
3
2