Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.
Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configuração de atributos complexos
Os atributos de solicitação e de sessão são mapas de string para string de atributos e valores. Em muitos casos, você pode usar o mapa de string para transferir valores de atributo entre o aplicativo cliente e o bot. Em alguns casos, no entanto, pode ser necessário transferir uma estrutura complexa ou dados binários que não podem ser facilmente convertidos em um mapa de string. Por exemplo, o seguinte objeto JSON representa um arranjo com as três cidades mais populosas dos Estados Unidos:
{
"cities": [
{
"city": {
"name": "New York",
"state": "New York",
"pop": "8537673"
}
},
{
"city": {
"name": "Los Angeles",
"state": "California",
"pop": "3976322"
}
},
{
"city": {
"name": "Chicago",
"state": "Illinois",
"pop": "2704958"
}
}
]
}
Esse arranjo de dados não funciona bem como mapa de string para string. Nesse caso, você pode transformar um objeto em uma string simples para que você possa enviá-lo ao seu bot com as operações PostContent e PostText.
Por exemplo, se você estiver usando o JavaScript, você pode usar a operação JSON.stringify
para converter um objeto para JSON e a operação JSON.parse
para converter texto JSON para um objeto JavaScript:
// To convert an object to a string. var jsonString = JSON.stringify(
object
, null, 2); // To convert a string to an object. varobj
= JSON.parse(JSON string
);
Para enviar atributos de sessão com a operação PostContent
, você deve codificar os atributos em base64 antes de adicioná-los ao cabeçalho de solicitação, como mostrado no seguinte código JavaScript:
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
Você pode enviar dados binários para as operações PostContent
e PostText
convertendo os dados para uma string codificada em base64 e, em seguida, enviando a string como o valor nos atributos de sessão:
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}