翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
セッション属性およびリクエスト属性は、属性と値の文字列間マップです。多くの場合、文字列マップを使用してクライアントアプリケーションとボットの間で属性値を転送できます。ただし、場合によっては、文字列マップに容易に変換できないバイナリデータや複雑な構造の転送が必要になることもあります。例えば、次の JSON オブジェクトは米国の最も人口が多い 3 つの都市の配列を示しています。
{
"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
"
}