

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 處理來自 AppInstanceBot for Amazon Chime SDK 訊息的回應
<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 機器人意圖名稱。
+ **CIFNE.LEX.sessionState.intent.state** – 意圖的目前狀態。可能的值包括：`Fulfilled`、 `InProgress`和 `Failed`。
+ **CIFNE.LEX.sessionState.originatingRequestId** – 對 Amazon Lex 機器人提出特定請求的唯一識別符。這是設定為觸發 AppInstanceBot `MessageId` 之原始使用者訊息的 。
+ **CIFNE.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 傳回屬性的詳細資訊，請參閱 [Amazon Lex 執行期 V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) APIs。