SlackのEnableEventsとAWSAPIGatewayとAWSLamdaでオウム返しbotを作る
SlackとAWSLamdaでオウム返しbotを作ります!
この記事の対象となる人
・pythonの基本的な構文が読める人
・AWSのアカウントを持ってる人
・Slackのアカウントを持っている人
筆者の環境は
OS:Windows10
python:pyton3系
です
Mac環境の人などは一部動作が異なる可能性があります
随時読み替えてください。
アーキテクチャ
完成イメージ
userがチャンネルで「@AppName 文字列」を送信すると、@AppNameがその言葉そそっくりそのままチャンネルに返答します
SlackAppの新規作成
https://api.slack.com/apps
へアクセスします
・「Create New App」をクリック
・「App Name」に任意の名前を入力します。今回は「Oumukun」とします
・「Development Slack Workspace」を任意のワークスペースを選択してください
・「create」をクリック
・「Event Subscriptions」をクリックします
・「Enable Events」の横のバーを「On」にします
SlackAppのEnableEventsの使用条件を確認する
画面をSlackに戻って、Enable EventsはONにしただけでは使えません。requestURLにAWSAPIGatewayのエンドポイントを登録し、かかつchallengeをして検証に通らなければなりません。
requestURLにAWSのエンドポイントのURLを貼り付けると、貼り付けた瞬間にSlackからAWSにrequestが送られます。
送られてきたBodyは例えば下記のJSONです
AWS Lambdaの関数の登録
AWSマネジメントコンソールへログイン
・AWSのサービスから「Lambda」を選択する
・サービスを検索するから「lambda」を検索すると早いです
・よく使っている場合は最近アクセスしたサービスの中にいます
・「関数の作成」をクリック
・「一から作成」を選択
・「関数名」に任意の名前をつけます。今回は「Lambda_Oumukun」とします
・ランタイムはpythonを選択します
・「関数の作成」をクリック
AWS API Gatewayを追加する
・「トリガーを追加」をクリックします
・「API Getway」をクリック
・API「Create an API」を選択
・APItype「REST API」を選択
・セキュリティ「オープン」を選択
・「追加」をクリック
・「トリガーを追加」をクリックします
・「API Getway」をクリック
・API「Create an API」を選択
・APItype「REST API」を選択
・セキュリティ「オープン」を選択
・「追加」をクリック
・画面がLambda開発画面に戻ります
・Designer画面から「API Gateway」をクリック
・API Gatewayの画面から「Oumkun-API」をクリック
・画面が遷移してAPI Gatewayの画面に代わります
・「Oumkun」の文字の下にある「ANY」を選択します
・「アクション」ボタンをクリックして「メソッドの削除」をクリック
・「Oumkun」を選択中に「アクション」ボタンをクリックして「メソッドの作成」
・「Oumkun」の文字の下にプルダウンが現れます
・「POST」を選択してその隣にある「レ」チェックマークをクリックします
・POST - セットアップの画面で「Lambda関数」で「Oumkun」と入力
・「保存」ボタンをクリック
・「総合リクエスト」をクリック
・「マッピングプレート」の隣の「▶️」ボタンを押して開く
・「なし 」をクリック
・「マッピングテンプレートの追加」クリック
・名前を「application/json」とする
下記を保存します
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?