1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

やりたいこと

SlackのDM経由で前回構築したLexボットとやり取りしたい

①Slackアプリの作成

以下のURLにアクセスして、Slackアプリを作る
https://api.slack.com/apps?new_app=1

「From a manifest」で作成
image.png

ワークスペースを選択
image.png

manifestを設定。アプリ名を決めて、その他は全部デフォルトで大丈夫。
image.png

設定内容をレビューして、「Create」
image.png

すると、作成されたSlackアプリの設定画面に遷移された。
この画面にあるID情報はのちほどLex側での設定に使う。
image.png

②Lex側の連携設定

Lexを開き、「ボット」>「ボット名」>「デプロイ」>「チャネル統合」>「チャネル追加」をクリック

image.png

フラットフォームを「Slack」にし、IAMロール自動作成をそのまま
image.png

アプリ名を、Slackアプリ名にし、エイリアスをLexボットのエイリアス、言語をJapaneseにする
image.png

追加設定は、先ほどSlackアプリの設定画面のIDで入れる。最後は「追加」をクリック。
image.png

すると、チャネルが作成された。
image.png

チャネル画面の下にあるコールバックURLは、後でまたSlackアプリの設定画面に使う。
image.png

③Slackアプリの設定

再びSlackアプリの設定画面に戻り。

左メニューから「OAuth & Permissions」をクリック、「Redirect URLs」にLexのチャネル設定画面から「OAuthエンドポイント」をコピーし入力する。

image.png

同画面にある「Scopes」に、必要に応じて権限を与える。
image.png

AWSのドキュメントによると、「chat:write」と「team:read」だけ書いてあるが、「im:history」を一緒に設定しないと、この後のEvent Subscriptions設定にスコープが足りないを怒られるので、このタイミングで設定。

また、今回はこちらの都合でほかの必要な権限も一緒に設定する。
image.png

左メニューから「Event Subscriptions 」をクリックし、「Enable Events」をOnにしたうえ、「Request URL」にLexのチャネル設定画面からエンドポイントをコピーし入力する。

同画面にある「Subscribe to bot events」に「message.im」権限を与える。
(上記の「im:history」のスコープが必要)

image.png

左メニューから「App Home」をクリックし、画面一番下にある「Show Tabs」の「Messages Tab」にチェックを入れる。

image.png

補足:この設定を忘れたままSlackにデプロイすると、以下のようにDM送信ができず「このアプリへのメッセージ送信はオフにされています」と怒られる。。。
image.png

左メニューのから「Manage Distribution」の「Add to Slack」をクリックし
image.png

「許可」を押す
image.png

④Slackでテスト

Slackを開き、appから作ったアプリ名を検索して追加
image.png

すると、このようにSlackのDMでLexボットと会話できるようになった!
image.png

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?