Bot Frameworkで作ったBotをSlack Botにする手順

# はじめに

書くって言って書いていなかったBot Frameworkで作ったBotをSlack Botにするやつ。
書いていない間にSlackが日本語対応して、設定画面が日本語になったけど分かりにくい…。
前の記事は↓
[Bot Frameworkと雑談対話APIを使用したチャットBot](https://qiita.com/Shota_Fukuda/items/9aead1445b902183d6ec)

# 前提条件

- Slackのアカウント
- 開発に使用出来るSlackのWorkspace

## 実際に設定をやってみる

### Slack Appの追加

[Slack API](https://api.slack.com/apps)から新しくSlack Appを作成します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/b916ee7e-acd1-7571-fa26-c7a8509325c0.png)

**Create New App**をクリック。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/f8825dd8-9818-766d-5628-5054107e61f4.png)

App Nameの指定と開発を行うSlackのWorkspaceを選択して**Create App**をクリックすると、Slack Appが作成され、設定画面に遷移します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/79dec52b-ac07-9bef-902f-d058dc1cc414.png)

### リダイレクトURLの設定

設定画面のOAuth&権限をクリックし、設定を表示します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/f5bdcd8e-ef16-1a9e-e050-ef3585bf2abc.png)

**新しいリダイレクトURLを追加**をクリックし、
https://slack.botframework.com/
を追加する。
追加した後、**URLを保存する**をクリックし、保存する。

### ボットユーザーの追加

設定画面のボットユーザーをクリックし、設定を表示します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/59e9deeb-f849-c29a-2f72-3cd0ae8bce94.png)

**ボットユーザーを追加する**をクリックする。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/fe7f4c25-c540-46e3-f59f-168eb2fb3328.png)

表示名、デフォルトのユーザー名を追加および
私のボットを常にオンラインで表示するをオンに設定し、
**ボットユーザーを追加する**をクリックし、保存する。
※表示名に日本語を使用するのは、Slack日本語対応するまでは不可能だったが、日本語対応の際に出来るようになった模様。

### Slack App情報をBotFrameworkへの登録

設定画面の基本情報をクリックし、設定を表示します。
アプリの認証情報の**クライアントID**、**クライアントシークレット**、**認証トークン**をメモしておきます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/9650873c-b2bc-e305-53d1-81fd0543e356.png)

[Microsoft Bot Framework](https://dev.botframework.com/)を開き、
My botsをクリックし、作成済みのBot一覧を表示後、[前回の記事](https://qiita.com/Shota_Fukuda/items/9aead1445b902183d6ec)で作成したチャットBotを選択する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/0dc1115e-2297-654e-fd04-c97fece8cd00.png)

追加できるchannelsの一覧からSlackをクリックする。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/d88dccae-e8cc-db19-151a-0905ef075c54.png)

Slack Appの情報を入力する画面になるので、メモをしておいた各種情報を入力し、
**Save**をクリックし、保存します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/878196dc-aedc-c5be-6266-7d54673294fc.png)

保存するとSlackの認証画面に遷移し、Slack Appと連携していいか聞いてくるので、**許可する**をクリックし、許可します。

Bot FrameworkとSlack連携の設定はこれで終了。

## 動かしてみる

### チャンネルにボットユーザーを追加

適当なチャンネルを開いて、@を入力すると作成したボットユーザーが表示されます。
※動作確認はプライベートチャンネルで行っています。パブリックチャンネルでは一部動作が違うかもしれません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/bf2d8b12-e75f-78d2-a19a-9929f6cce16c.png)

作成したボットユーザーにメンションを投げてみます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/f5d2a526-1a95-86e7-994d-3563221840eb.png)

プライベートチャンネルのため、ユーザーを招待するか聞かれるので招待しましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/4ca98b63-05da-ca78-c70e-7e9442ffb843.png)

再びボットユーザーにメンションを投げてみます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/25063acb-412f-a573-fe42-2faf3032ac0c.png)

Bot Frameworkで作成したチャットBotが起動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/199859/598dc7e0-dd87-41d3-5081-c51d3ebe1986.png)

雑談対話APIを使用したしりとりなどが出来ます。

# まとめ

- Bot Frameworkが公式に対応しているクライアントの場合、基本的に設定だけでチャットBotを各クライアントに公開出来る。
- Slackの日本語変じゃね。
- 一度期間空くと書くのが面倒になるので、間髪を入れずに書こう。