Jika Anda menggunakan Amazon Lex V2, lihat panduan Amazon Lex V2 sebagai gantinya.
Jika Anda menggunakan Amazon Lex V1, kami sarankan untuk meningkatkan bot Anda ke Amazon Lex V2. Kami tidak lagi menambahkan fitur baru ke V1 dan sangat menyarankan menggunakan V2 untuk semua bot baru.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengatur Atribut Kompleks Kompleks
Sesi dan permintaan atribut adalah string-to-string peta atribut dan nilai-nilai. Dalam banyak kasus, Anda dapat menggunakan peta string untuk mentransfer nilai atribut antara aplikasi klien Anda dan bot. Namun, dalam beberapa kasus, Anda mungkin perlu mentransfer data biner atau struktur kompleks yang tidak dapat dengan mudah dikonversi ke peta string. Misalnya, objek JSON berikut mewakili array dari tiga kota terpadat di Amerika Serikat:
{
"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"
}
}
]
}
Array data ini tidak diterjemahkan dengan baik ke string-to-string peta. Dalam kasus seperti itu, Anda dapat mengubah objek menjadi string sederhana sehingga Anda dapat mengirimkannya ke bot Anda denganPostContent danPostText operasi.
Misalnya, jika Anda menggunakan JavaScript, Anda dapat menggunakanJSON.stringify
operasi untuk mengonversi objek ke JSON, danJSON.parse
operasi untuk mengonversi teks JSON ke JavaScript objek:
// 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
);
Untuk mengirim atribut sesi denganPostContent
operasi, Anda harus base64 menyandikan atribut sebelum Anda menambahkannya ke header permintaan, seperti yang ditunjukkan dalam JavaScript kode berikut:
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
Anda dapat mengirim data biner kePostContent
danPostText
operasi dengan terlebih dahulu mengkonversi data ke string base64 dikodekan, dan kemudian mengirim string sebagai nilai dalam atribut sesi:
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}