Impostazione di attributi complessi - Amazon Lex versione 1

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.stringifyoperazione per convertire un oggetto in JSON e l'JSON.parseoperazione 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. var obj = JSON.parse(JSON string);

Per inviare gli attributi di sessione con l'PostContentoperazione, è 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" }