Amazon Chime SDK メッセージング用の AppInstanceBot からのレスポンスの処理 - Amazon Chime SDK

Amazon Chime SDK メッセージング用の AppInstanceBot からのレスポンスの処理

ユーザーがメッセージを送信すると、AppInstanceBot はチャネルメッセージで応答します。チャネルメッセージを一覧表示して、ボットのレスポンスを取得できます。

次の例は、CLI を使用してチャネルメッセージを一覧表示する方法を示しています。

aws chime-sdk-messaging list-channel-messages \ --chime-bearer caller_app_instance_user_arn \ --channel-arn channel_arn

AppInstanceBot からの成功レスポンスは以下の形式になります。

{ "MessageId": "messageId", "Content": "*{\"Messages\":[{\"...\"}]}*", "ContentType": "application/amz-chime-lex-msgs", "MessageAttributes": { "CHIME.LEX.sessionState.intent.name": { "StringValues": [ "lex_bot_intent_name" ] }, "CHIME.LEX.sessionState.intent.state": { "StringValues": [ "lex_bot_intent_fullfilment_status" ] }, "CHIME.LEX.sessionState.originatingRequestId": { "StringValues": [ "lex_bot_originating_request_id" ] }, "CHIME.LEX.sessionState.sessionId": { "StringValues": [ "lex_bot_session_id" ] } }, "Sender": { "Arn": "app_instance_bot_arn", "Name": "app_instance_bot_name" }, "Type": "STANDARD", }
Content

Content フィールドには Amazon Lex V2 ボットから送信されるメッセージのリストが含まれます。これらのメッセージの詳細については、Amazon Lex V2 RecognizeText API の「メッセージ」を参照してください。

以下の例は、挨拶のメッセージで Content フィールドを使用する方法を示しています。

{ "Messages": [ { "Content": "Hello!", "ContentType": "PlainText" }, { "ContentType": "ImageResponseCard", "ImageResponseCard": { "Title": "Hello! I'm BB, the Bank Bot.", "Subtitle": "I can help you with the following transactions", "Buttons": [ { "Text": "Check balance", "Value": "Check balance" }, { "Text": "Escalate to agent", "Value": "Escalate to agent" } ] } } ] }

失敗レスポンスの場合、[コンテンツ] フィールドには以下の形式のエラーメッセージとコードが含まれます。

{ "Code": error_code }
ContentType

ContentTypeContent フィールドに含まれるペイロードのタイプを指し、Content フィールドを解析するにはこれをチェックする必要があります。

注記

Lex V2 ボットは別の ContentType を使用します。

ContentType は成功レスポンスの場合は application/amz-chime-lex-msgs に、失敗レスポンスの場合は application/amz-chime-lex-error に設定されます。

MessageAttribute

MessageAttribute は、文字列キーから文字列値へのマッピングです。AppInstanceBot からのレスポンスには、Amazon Lex ボットからのレスポンスにマッピングされた以下のメッセージ属性が含まれます。

  • CHIME.LEX.sessionState.intent.name — リクエストが処理しようとした Lex ボットのインテントの名前。

  • CHIME.LEX.sessionState.intent.state — インテントの現在の状態。指定できる値には、FulfilledInProgressFailed などがあります。

  • CHIME.LEX.sessionState.originatingRequestId — Amazon Lex ボットへの特定のリクエストを表す一意の識別子。これは AppInstanceBot をトリガーした送信元のユーザーメッセージの MessageId に設定されます。

  • CHIME.LEX.sessionState.sessionId — ユーザーとボットの間の会話を識別する一意の識別子。ユーザーがボットとのチャットを開始すると、Amazon Lex によりセッションが作成されます。

Amazon Lex セッションとセッション状態の詳細については、「Amazon Lex API リファレンス」の「SessionState」と、「Amazon Lex V2 開発者ガイド」の「セッションの管理」を参照してください。

Amazon Lex V2 が返す属性の詳細については、「Amazon Lex ランタイム V2」API を参照してください。