Se utilizzi Amazon Lex V2, consulta invece la guida Amazon Lex V2.
Se utilizzi Amazon Lex V1, ti consigliamo di aggiornare i bot ad Amazon Lex V2. Non stiamo più aggiungendo nuove funzionalità alla V1 e consigliamo vivamente di utilizzare la V2 per tutti i nuovi bot.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Impostazione di attributi complessi
Gli attributi di sessione e richiesta sono string-to-string mappe di attributi e valori. In molti casi puoi utilizzare la mappa stringa per trasferire i valori degli attributi tra l'applicazione client e un bot, mentre in alcuni casi potresti dover trasferire i dati binari o una struttura complessa che non può essere convertita facilmente in una mappa stringa. Ad esempio, il seguente oggetto JSON rappresenta una matrice delle città più popolose degli Stati Uniti:
{
"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"
}
}
]
}
Questa matrice di dati non si traduce bene in una string-to-string mappa. In questo caso, puoi trasformare un oggetto in una stringa semplice per poterla inviare al tuo bot con le operazioni PostContent e PostText.
Ad esempio, se si utilizza JavaScript, è possibile utilizzare l'JSON.stringify
operazione per convertire un oggetto in JSON e l'JSON.parse
operazione per convertire il testo JSON in un JavaScript oggetto:
// 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
);
Per inviare gli attributi di sessione con l'PostContent
operazione, è necessario codificare gli attributi in base64 prima di aggiungerli all'intestazione della richiesta, come mostrato nel JavaScript codice seguente:
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
Puoi inviare i dati binari alle operazioni PostContent
e PostText
convertendo dapprima i dati in una stringa con codifica base64, quindi inviando la stringa come valore negli attributi di sessione:
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}