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”

  • 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に対してメッセージを送ります。ボットが返答してくれます。