Slack上でチームの雑談を促進するBotをつくる！(1/2)

# 概要
リモートワークが主である自分の職場では、業務上必要なこと以外の話をする機会がなく、何とかしたいと思っていました。そんなとき、学生時代のバイト先で使っていたCollaというサービスを思い出しました。

https://www.colla.jp/

Collaは、Slack上での雑談のタネを提供してくれるサービスで、メンバーの趣味や好きな食べ物などを収集し、Slack上で「〇〇さんはXXが好きだそうです！」と共有してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/f250b71c-cff7-d120-7a6f-c838cd49c9f2.png)
（[www.colla.jp](www.colla.jp)より）

私は、普段なかなか知れないメンバーの一面を、Collaを通して知れるが好きだったので、雑談Bot（簡易版Colla）を作ってみようと思い立ちました！

# 雑談Botで実現したいこと
1. 名簿の中から、ランダムに1人選ぶ
2. あらかじめ用意した質問の中から1つ選ぶ
3. Slackの指定のチャンネル上で、選ばれた人に質問を投げかける
4. スレッド上でわいわい🙌

完成したBotでは、下記のように質問を投げかけてくれます！

![スクリーンショット 2024-10-25 0.29.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/13664964-37a8-260a-76c4-b233845e221f.png)


# 実現方法
* 名簿リストと質問リストの管理 → スプレッドシート
* Slackへの質問の投稿 → GAS & Slack API
誰でも名簿の保守や質問追加ができるように、これらはスプレッドシートで管理することにしました。GASとSlack APIを使って、Slackチャンネルに質問を投稿することとします。

# 実装
## Slack Botの準備
まず、質問の投稿主となるSlack Botを作成します

### 1. Botを作る
下記ページから

https://api.slack.com/apps

「Create app」をクリックし、「From scratch」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/ecd5bca8-e44e-41d4-d4af-439e13ca5509.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/7782230d-833b-2622-e534-f2d762fe1583.png)

### 2. App Homeの編集
「App Home」ページの「Your App’s Presence in Slack」の「Edit」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/3d49e40e-812f-2dcc-a549-ff51f2b4f964.png)

表示名とusernameを設定し、「Add」をクリックします。
Bot名は、このBotがメンバー同士の仲を繋いでくれることを願って「つなぐん」にしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/5069244c-9859-1678-a0cf-8a3b636a4190.png)

この手順を行わないと、後続のワークスペースへのインストールができないので注意が必要です。

### 3. Botの基本情報を設定する
「Basic Information」ページで、アプリ名やアイコンをいい感じに設定して、右下の「Save Changes」で保存します。
リスがどんぐりを運ぶように雑談のタネを持ってきてくれることをイメージして、アイコンはリスにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/08f16b8b-0710-e594-ccbf-f4d971d7a75a.png)

### 4. 権限の付与
続いて、BotからSlackに投稿をするため、Botに権限を付与します。
「OAuth & Permissions」ページの「Scopes」から、「Add an OAuth Scope」をクリックし、`chat:write`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/425e904d-d92b-a2a5-02b0-412ff44d303b.png)

### 5. ワークスペースへのインストール
同じく「OAuth & Permissions」ページ上で、「Install to `ワークスペース名`」をクリックします。

![スクリーンショット 2024-10-24 22.06.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/b55d7a22-ce90-6198-f6d9-4e9ac74091e2.png)

下記画面が表示されたら「許可する」をクリックします。

![スクリーンショット 2024-10-24 22.15.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/82b0c931-d175-7b64-0bcc-fd833fe1ecd6.png)

### 6. tokenのコピー

作成されたBot User OAuth Tokenをあとで使うのでコピーしておきます。

![スクリーンショット 2024-10-24 22.17.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/10293b69-fb4b-079e-c718-8286e1ac86d3.png)

### 7. Botをチャンネルに追加する

Slack チャンネル設定の「インテグレーション」から「アプリを追加する」をクリックし、アプリを追加します。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704675/da73c4b1-0ea1-dc1d-2511-8373565151d4.png)


---

Slack Botの準備ができました。次回の記事では作成したBotからSlackにメッセージを送信する機能を実装します！

https://qiita.com/Tokoroteen/items/244aea3bc75fa5e95308