三流窓際エンジニアがやる初めてのSlack Bot開発 〜Bot 準備編 〜

在宅勤務が増え、社内でもSlackを使う機会が増えてきている。
基本的に人力でいろいろやっていて、とても面倒なのでこの機会になんか楽できるBotを作ってみようと思います！
以下、やったことをグダグダと取り留めなくメモっていく。

<h1>Slack Botでなにする？</h1>
今回作るBotは、
1. 在宅勤務者は作業開始時に挨拶のリアクションを残すルールなので、リアクションをカウントし、人数が集まったら挨拶メッセージを投稿する。
2. 定時になったら業務終了を通知する挨拶メッセージを投稿する。

の2つの機能を持ったBotを最終的に作ろうかと思います。
とはいえ、今回初めてなので、<b>単純に時間が来たらメッセージを投稿する</b>シンプルなbotをまずは作ってみて機能拡張していく方針でやってみようかと。

<h1>Slack Botのしくみ</h1>
いろいろ調べてみるとSlack Botは以下の図のように動いているようです。
(サーバー立てるのか、めんどくせーな…楽したい…)

![slack.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/74b98cd4-8af5-70b7-6d75-d1e68816ee59.jpeg)

<h1>今日の目標</h1>
今日はサーバとSlackとの橋渡しをするbot部分を作る(設定を終わらせる)。

参考にしたサイト：
誰でも分かるはず！本気でSlackBotの作り方を解説してみた！
https://belltree.life/slack-bot-hands-on/

誰でも分かるって書いてあるからきっと僕でもできるのだろう。

<h1>Slack APIのサイトでBotを作る</h1>
Slack API( https://api.slack.com/apps?new_app=1 )にアクセスする。
すると、以下のような画面が開く。

![スクリーンショット 2022-01-23 16.31.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/dc3208f7-2be3-1387-d156-32b3d958d94b.png)

とりあえず"BETA"がついてない"From scratch"を選ぶ。
次に名前とbotをしかけるWorkspaceを設定する。

![スクリーンショット 2022-01-23 16.38.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/5b304e1f-f522-7736-cfbe-2f40c4e52524.png)

"Create App"でBotが作成されるものの、権限を何も持ってないので、権限を与える。
![スクリーンショット 2022-01-23 16.41.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/6f1b48fc-a73d-4fcd-0fcd-d500fc4b369e.png)
![スクリーンショット 2022-01-23 16.50.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/06867c0b-ed30-2a75-aacf-2adde8d53ab7.png)

それぞれの意味は、
・ chat:write メッセージを投稿する権限
・ chat:write.customize メッセージを投稿する時に表示されるボット名やアイコンを自由に設定する権限
・ reaction:read メッセージに付けられたリアクションを取得できる？

ここまでできたら、Let`s install!!
とりあえず動作確認用に作ってあるWorkspaceにインストールしてみる。

![スクリーンショット 2022-01-23 20.46.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/5b1b90e5-aac8-bf1d-7b41-104a56776f68.png)

！？できない？？

![スクリーンショット 2022-01-23 20.47.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/572e2a78-b469-f80e-eb48-83b6d0348841.png)

こちらのサイト( https://tea-programming.blogspot.com/2020/03/slack.html )を見ると、どうもメッセージそのままにボットユーザーを追加しないといけないらしい。
ということでボットユーザーを追加！名前はテキトー！！
![スクリーンショット 2022-01-23 20.52.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/c2c2d0c4-cca7-a504-8d51-24d20d9bf34e.png)

下へスクロールすると、

![スクリーンショット 2022-01-23 20.53.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/73e90c92-1cfe-b82f-1483-7cbd535c04c0.png)

"Bots"をクリックして移動した先でここの"Edit"ボタンを押す

![スクリーンショット 2022-01-23 20.59.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/3b45c0c1-2ae4-f723-1633-6f6d30730579.png)

テキトーに名前を入れて"Add"ボタンを押す

![スクリーンショット 2022-01-23 20.55.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/1a1927cd-a1fe-a505-7d4a-12d71c937171.png)

するとボットユーザーが追加される！

![スクリーンショット 2022-01-23 20.55.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/705fc43c-df7d-0680-8c82-8269b021ea52.png)

準備ができたので、改めてさっきの"Install to Workspace"を押すと、先に進む！

![スクリーンショット 2022-01-23 20.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201583/8020d069-8c32-97e9-bdd5-ada351abcb41.png)

"許可する"ボタンを押して、インストール完了！！

この後の画面のTokenを使うことで、許可した範囲でAPIが使えるそうな。

今日はここまで！
APIを使うところはまた次回に！