Facebook Messenger Botを AWS Lambda + Lexで構成する手順覚書. 今回は、サンプルアプリの BookTripを使っています。
- AWSへログインして、Lexへ移動します。(リージョンは、N.Virginiaのみです)
- “Get started”をクリック
- “BookTrip”を選択して、Bot nameは、”BookTrip”とします。Child-directedは、”No”にして “Create”
- ここで Lambdaへ移動します。”Create a Lambda function”で新規作成
- フィルターに “lex”といれて候補を絞り、 “lex-book-trip-python”を選択します。
- Click “Next”
- Name : “BookTrip”, Role: “Create new role from template(s)”, Role name: a”BookTrip”それぞれ入力してから “Next”をクリック
- Click “Create function”
- Lexに戻ります。ここで、Lexと Lambdaを接続します。BookCar Versionを “Latest”に変更します。
- “initialization and validation code hook” をチェックして、プルダウンリストからBookTripを選択します。
- “AWS Lambda function”をチェックします。同様に BookTripをプルダウンリストから選択して “Save intent”
- “Build”をクリック
- Buildが終わったら、”Setting”タブへ移動します。 Alias name: “Prod”, Bot version: “Latest”として、右隣の+をクリックしてエイリアスを追加します。
- “Editor”タブに戻り “Publish”をクリックします。エイリアスは “Prod”として、, “Publish”をクリック。
- 同じ手順で、”BookHotel” intentも Publishします。
- Facebook Pageを作成します。Facebookへ移動して、”create page”をクリックし、名称を入力後、”Get started”
- 開発者ページへ移動します。 “https://developers.facebook.com”, “Add a new app”で Appを新規作成します。
- Display name and contact e-mailを入力して “Create App ID”をクリック、CAPCHAを入力して Submit.
- Messengerを追加します。+Add product “Messenger” -> “Get started”
- 先ほど作成したページを選択すると、Page Access Tokenが表示されますので、クリックしてコピーします。どこかにメモしましょう。
- “Settings” -> Basicに移動します。App Secretの箇所の “Show”ボタンを押下し、パスワードを入力すると、App Secretが表示されます。メモしておきます。
- Lexと Facebookを接続します。Lexに戻って “Channel”タブを選択します。Name, KMS Key, Alias, Verify Token, Page access token, App secret keyなどを入力したら、”Activate”します。
- Callback URLsが表示されるので、”Copy”を押下してコピーします。
- Facebookの開発者ページに戻ります。”Setup Webhooks”をクリックします。Callback URLsと Verify Tokenを入力し、”messaging” and “messaging_postbacks”をチェックします。”Verify and Save”をクリック。
- Select a page to subscribe … , 作成したページを選択して、”Subscribe”を押下します。
- 以上で設定は完了です。Facebook Pageに対してメッセージを送ります。ボットが返答してくれます。