

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 正在处理来自 For Amazon Chime 软件开发工具包消息 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**  
A *MessageAttribute*是字符串键到字符串值的映射。来自 `AppInstanceBot` 的响应包含以下消息属性，这些属性映射到来自 Amazon Lex 机器人的响应。  
+ **CHIME.LEX.sessionState.intent.name**— 请求尝试实现的 Lex 机器人意图的名称。
+ **CHIME.LEX.sessionState.intent.state**— 意图的当前状态。可能的值包括：`Fulfilled`、`InProgress` 和 `Failed`。
+ **CHIME.LEX.sessionState.originatingRequestId**— 向 Amazon Lex 机器人发出的特定请求的唯一标识符。该值设置为触发`MessageId`的原始用户消息的 AppInstanceBot。
+ **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 Runtime V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) API。