Amazon Lex
開発者ガイド

メッセージングプラットフォームで Amazon Lex ボットをデプロイする

このセクションでは、Facebook、Slack、および Twilio の各メッセージングプラットフォームで Amazon Lex ボットをデプロイする方法について説明します。

注記

Facebook、Slack、Twilio の各設定を保存する際に、Amazon Lex は AWS Key Management Service カスタマーマスターキー (CMK) を使用して情報を暗号化します。これらのメッセージングプラットフォームのいずれかに対するチャネルを初めて作成するときに、Amazon Lex はデフォルトの CMK (aws/lex) を作成します。代わりに、AWS KMS で独自の CMK を作成することもできます。これにより、キーの作成、更新、無効化ができるなど、より高い柔軟性が得られます。アクセスコントロールを定義し、データの保護に使用される暗号化キーを監査することもできます。詳細については、AWS Key Management Service 開発者ガイド を参照してください。

メッセージングプラットフォームから Amazon Lex に送信されるリクエストには、プラットフォーム固有の情報が Lambda 関数へのリクエスト属性として含まれています。これらの属性を使用してボットの動作をカスタマイズします。詳細については、「リクエスト属性の設定」を参照してください。

すべての属性は、名前空間 x-amz-lex: をプレフィックスとして使用します。たとえば、user-id 属性は x-amz-lex:user-id と呼ばれます。プラットフォーム別の固有の属性に加えて、すべてのメッセージングプラットフォームから送信される一般的な属性があります。以下の表は、メッセージングプラットフォームからボットの Lambda 関数に送信されるリクエスト属性の一覧です。

一般的なリクエスト属性

属性 説明
channel-id Amazon Lex のチャネルエンドポイント識別子。
channel-name Amazon Lex のチャネル名。
channel-type

次のいずれかの値になります。

  • Facebook

  • Kik

  • Slack

  • Twilio-SMS

webhook-endpoint-url チャネルの Amazon Lex エンドポイント.

Facebook のリクエスト属性

属性 説明
user-id 送信者の Facebook 識別子。参照: https://developers.facebook.com/docs/messenger-platform/webhook-reference/message-received
facebook-page-id 受取人の Facebook ページ識別子。参照: https://developers.facebook.com/docs/messenger-platform/webhook-reference/message-received

Kik のリクエスト属性

属性 説明
kik-chat-id bot が関与する会話の識別子。詳細については、https://dev.kik.com/#/docs/messaging#message-formats を参照してください。
kik-chat-type メッセージが発信された会話のタイプ。詳細については、https://dev.kik.com/#/docs/messaging#message-formats を参照してください。
kik-message-id メッセージを識別する UUID。詳細については、https://dev.kik.com/#/docs/messaging#message-formats を参照してください。
kik-message-type メッセージのタイプ。詳細については、https://dev.kik.com/#/docs/messaging#message-types を参照してください。

Twilio のリクエスト属性

属性 説明
user-id 送信者の電話番号 ("From")。参照: https://www.twilio.com/docs/api/rest/message
twilio-target-phone-number 受取人の電話番号 ("To")。参照: https://www.twilio.com/docs/api/rest/message

Slack のリクエスト属性

属性 説明
user-id Slack ユーザー識別子。参照: https://api.slack.com/types/user
slack-team-id メッセージを送信したチームの識別子。参照: https://api.slack.com/methods/team.info
slack-bot-token Slack API へのアクセス権限をボットに付与する開発者トークン。参照: https://api.slack.com/docs/token-types