

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Chime SDK メッセージング用の AppInstanceBot からのレスポンスの処理
<a name="process-response"></a>

ユーザーがメッセージを送信すると、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 の「[メッセージ](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages)」を参照してください。  
以下の例は、挨拶のメッセージで `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 リファレンス*」の「[https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html)」と、「*Amazon Lex V2 開発者ガイド*」の「[セッションの管理](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html)」を参照してください。  
Amazon Lex V2 が返す属性の詳細については、「[Amazon Lex ランタイム V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html)」API を参照してください。