Amazon Chime SDK メッセージング用の AppInstanceBot からのレスポンスの処理
ユーザーがメッセージを送信すると、AppInstanceBot はチャネルメッセージで応答します。チャネルメッセージを一覧表示して、ボットのレスポンスを取得できます。
次の例は、CLI を使用してチャネルメッセージを一覧表示する方法を示しています。
aws chime-sdk-messaging list-channel-messages \ --chime-bearer
caller_app_instance_user_arn
\ --channel-arnchannel_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 V2RecognizeText
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
-
ContentType
はContent
フィールドに含まれるペイロードのタイプを指し、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 — インテントの現在の状態。指定できる値には、
Fulfilled
、InProgress
、Failed
などがあります。 -
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 を参照してください。
-