本記事はSlackbotを作成するためのAPIトークンを取得する手順を説明するものです。

APIトークンは「Hubot」をSlackにインストールすることで取得することができます。
今回は、Hubotのインストール及びAPIトークンを取得する手順について説明していきます。

SlackbotのAPIトークン取得手順

動画を作ってみました。

1.SlackのAppのページに移動します。
https://xxxxxxxxx.slack.com/apps
また、以下の手順でAPPページに移動することも可能です。

Appの+ボタンをクリックします。
+ボタンをクリック

Appディレクトリを表示をクリックします。
Appディレクトリを表示

2.「hubot」で検索します。
hubotで検索

3.「設定の追加」ボタンをクリックします。
設定を追加

4.名前を入力して「Hubotインテグレーションの追加」をクリックします。
名前を入力して「Hubotインテグレーションの追加」をクリック

「HUBOT_SLACK_TOKEN=」以降の内容がAPIトークンです。
セットアップの手順

取得したAPIトークンについて

APIトークンはネット上で公開されると無効化されます。GitHubのPublicレポジトリにBotのコードを公開する場合にはOSに環境変数として定義したり引数として受け取ったりするなどコード上にAPIトークンを記載しないようにしましょう。

>>SlackbotのAPIトークンを環境変数から取得する

APIトークンは1つのBotにつき一つ必要です。
複数のワークスペースでBotを起動したい場合はそれぞれのワークスペースでAPIトークンが必要です。

>>Slackbotを複数のワークスペースで使う

Slackbotの画像を変更する

そのまま使うとオレンジ色のロBotの顔でSlack上に表示されますが、この画像は変更することが可能です。

Botの設定を開きます。
スクロールすると「アイコンをカスタマイズする」という項目が出てきます。アイコンにはSlackの絵文字または画像をアップロードして設定することができます。
Botの画像変更

画像を変更したら「インテグレーションの保存」をクリックします。
これで画像の変更は完了です。

関連記事>>SlackbotをPythonで作成しよう
関連記事>>SlackbotをJavaScriptで作成しよう

Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜

PythonでOSの環境変数を取得する方法

APIトークンの値をソースコードに直接書き込んでしまうとBotの数だけ設定ファイルを用意する必要があるため不便です。

また、APIトークンは非公開情報であるため、githubにソースコードをアップしたい場合にも支障があります。
(APIトークンを公開するとそのAPIトークンは使えなくなります。)

一つのソースコードで複数のAPIトークンを扱えるようにする方法としては「OSの環境変数を使用する方法」や「トークンを引数として受け取る方法」があります。

Pythonで環境変数を取得する場合は「os」ライブラリの「environ()」メソッドを使用します。
以下は「BOT_API_TOKEN」という環境変数を定義している場合の記述例です。

この内容を「slackbot_settings.py」に実装します。

PythonでAPIトークンを引数として受け取る方法

別の方法としてはAPIトークンを引数として受け取る方法があります。

◆引数なしの起動方法

python bot.py

◆引数ありの起動方法
ファイルの後にスペースで区切って文字を追加入力することで引数を指定することが可能。

環境変数を指定する場合は、UNIX系のOSやMacOSの場合は「$マーク」をつけます。

python bot.py $BOT_API_TOKEN

Windowsの場合は環境変数を”%”で囲みます。

python bot.py %BOT_API_TOKEN%

2個以上の引数を指定することが可能です。

python bot.py argument1 argument2

起動時に受け取った引数はsysライブラリの「argv」に格納されています。

引数を3つ指定して上記コードを実行すると以下の結果が得られます。

(venv) bash-3.2$ python test.py argument1 argument2 3
# 値
0 test3.py
1 argument1
2 argument2
3 3

上記の通りargv[0]にはファイル名が入り、それ以降に引数が入ってきます。

◆記述例
以上を踏まえて「slackbot_settings.py」を記述すると以下のようになります。

◆起動方法
トークンまたはトークンを定義した環境変数を指定します。

python bot.py $BOT_API_TOKEN

以上、APIトークンを環境変数から受け取る方法でした。

Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜