Slack ボットの作成手順

# 概要
各種ツールからSlackを操作したい場合に必要となる、ロボットがSlackを操作するためのボットの作成手順について説明。
※この記事はRPAツールで連携することを目的としているため、必要に応じて「ロボット」となっている部分は自作ツールやアプリに読み替えてください。

# おおまかな流れ
1. Slack botを作成する
2. 権限を付与する
3. ボットにSlack上での表示名を付ける
4. ボットを操作対象のスペースにインストールする
5. ボットの接続情報を控えて、ロボットに引き渡す
6. インストールしたボットを操作対象のチャンネルに招待する

# 処理手順
1~3は[Slack API Quickstart](https://api.slack.com/quickstart)が本家のページとなっているので、もし情報が古かったらこちらを参照いただければと思います。（英語ページのため要翻訳）
## 1. Slack botを作成する
1. Slackにログインしている状態で、[Slack API](https://api.slack.com/apps)へアクセスする
2. Your Appという画面が表示されるので「 **Create New App** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/74e033e7-eda2-90d1-5e61-71a566bd9590.png)
3. 「Create an app」というポップアップが表示されるので、「 **From scratch** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/fe481dc1-4064-9e1d-8d11-f6fbcd884586.png)
4. Create a slack App 画面が表示されるので、App Nameに **ボットの名前**、Development Slack WorkSpaceに **ボットを追加したいチャンネル** を指定し「 **Create App** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/bec1a203-7c4c-0496-f468-f46486a214d7.png)



## 2. 権限を付与する
1.  ボットを作成するとBasic Infomation画面が表示されるので、左部タブより「 **OAuth & Permissions** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/aa4ec579-36a9-c738-8af3-f8b5ff78d267.png)

2. 画面中部にScope画面が表示されるので、Bot Token Scopesの「 **Add an OAuth Scope** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/889cfa02-c2e2-bc90-6fbd-62e8f33629b7.png)
3. 付与できる権限が表示されるので、必要な権限を選択し追加する(スコープごとの権限については[Slack公式リファレンス｜スコープと権限](https://api.slack.com/scopes)のTokens欄に「bot」と記載されている項目を参照)
とりあえずは
・[chat_read](https://api.slack.com/scopes/chat:write)(チャットの読み取り）
・[chat_write](https://api.slack.com/scopes/channels:read)(チャットの書き込み）
を付けてあげればよいかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/63ce5db9-2556-274f-8cab-484fcce5c700.png)

## 3. ボットにSlack上での表示名を付ける
1. 権限の追加が完了したら左部の「 **App Home** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/68034d83-a3df-8a31-ffa2-fdf06e40cb2e.png)
2. App Home画面が表示されるので、App Display Nameの隣にある「 **Edit** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/44051a36-cc91-f01a-101c-76f2129cc1d4.png)
3. Add App Display Name画面が表示されるので、DisplayNameに「 **表示名**(※日本語可)」及びDefault usernameに「 **ユーザー名**(※小文字英語のみ)」を入力し「 **Add** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/839e4022-a06b-d6f5-9722-a3fa2e92b4f5.png)

## 4. ボットを操作対象のスペースにインストールする
1. 命名が完了したら左部の「 **Install App** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/b53f98a6-c525-58cf-1422-a7a33c9fa6bd.png)
2. Install App to Your Team画面が表示されるので、「 **Install App to Workspace** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/93b64793-6b7c-e176-b2ff-4da72f4b6bf2.png)
3. アクセス権限リクエスト画面が表示されるので、表示される権限とワークスペースに誤りがなければ「 **許可する** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/0349cfa3-afe3-79b1-ea2c-2f174df37866.png)

## 5. ボットの接続情報を控えて、ロボットに引き渡す
ロボットに引き渡す接続情報は以下の3種類。
### ①Bot User OAuth Access Token
アプリのインストールが完了するとInstalled App Settings画面に「Bot User OAuth Access Token」が表示されているので、控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/6f3c8311-f867-75d2-a960-d437af9644bc.png)

### ②Client ID
### ③Client Secret
画面左部の「Basic Infomation」をクリックし、画面中部にある「 **App Credentials** 」内に表示されているので、控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/5f726c20-df2f-121c-efcd-4ff42e9031d9.png)

## 6. インストールしたボットを操作対象のチャンネルに招待する
1. Slack内操作対象のチャンネルに移動し、「 **アプリを追加する** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/7ca9e853-9a52-ec55-0365-ad4a29ea73dd.png)
2. アプリを追加する画面に作成したボットが表示されるので、対象ボットの「 **追加** 」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/059c4cc4-5a8f-7840-bc4e-38c045d47f6a.png)
3. ボットの追加通知が届いたら完了！
![image][pasted-2020.08.23-00.28.54.png]![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/e7d7bbaf-9fe4-4f64-a8d8-f2ab86efcd98.png)

## この後は…
控えておいた接続情報をRPA側に引き渡し、Slack操作系のアクティビティを連携することでRPAツール経由でSlackの操作が可能になります。
UiPathの操作については[こちら](https://qiita.com/odm_knpr0122/items/125bbe1af4b853001ba2)