기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
복잡한 속성 설정
세션 및 요청 속성은 속성과 값의 문자열 간 맵입니다. 대부분의 경우 문자열 맵을 사용하여 클라이언트 애플리케이션과 봇 간에 속성 값을 전송할 수 있습니다. 그러나 경우에 따라 이진 데이터나 문자열 맵으로 쉽게 변환할 수 없는 복잡한 구조를 전송해야 할 수도 있습니다. 예를 들어 다음 JSON 객체는 미국에서 가장 인구가 많은 세 도시의 배열을 나타냅니다.
{
"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"
}
}
]
}
이 데이터 배열은 문자열 간 맵으로 변환되지 않습니다. 이 경우 객체를 간단한 문자열로 변환하여 봇에 보낼 수 있습니다.RecognizeText과RecognizeUtterance작업.
예를 들어 JavaScript를 사용하는 경우JSON.stringify
객체를 JSON으로 변환하는 작업 및JSON.parse
JSON 텍스트를 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
);
를 사용하여 속성을 보내려면RecognizeUtterance
작업 시 다음 JavaScript 코드와 같이 요청 헤더에 속성을 추가하기 전에 base64에서 해당 속성을 인코딩해야 합니다.
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
이진 데이터를 다음과 같이 보낼 수 있습니다.RecognizeText
과RecognizeUtterance
먼저 데이터를 base64로 인코딩된 문자열로 변환한 다음 세션 속성의 값으로 문자열을 보내는 작업을 수행합니다.
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}