Configuração de atributos complexos - Guia do desenvolvedor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configuração de atributos complexos

Os atributos de solicitação e de sessão são mapas de string para string de atributos e valores. Em muitos casos, você pode usar o mapa de string para transferir valores de atributo entre o aplicativo cliente e o bot. Em alguns casos, no entanto, pode ser necessário transferir uma estrutura complexa ou dados binários que não podem ser facilmente convertidos em um mapa de string. Por exemplo, o seguinte objeto JSON representa um arranjo com as três cidades mais populosas dos Estados Unidos:

{ "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" } } ] }

Esse arranjo de dados não funciona bem como mapa de string para string. Nesse caso, você pode transformar um objeto em uma string simples para que você possa enviá-lo ao seu bot com as operações RecognizeText e RecognizeUtterance.

Por exemplo, se você estiver usando o JavaScript, você pode usar a operação JSON.stringify para converter um objeto para JSON e a operação JSON.parse para converter texto JSON para um objeto JavaScript:

// 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);

Para enviar atributos de sessão com a operação RecognizeUtterance, você deve codificar os atributos em base64 antes de adicioná-los ao cabeçalho de solicitação, como mostrado no seguinte código JavaScript:

var encodedAttributes = new Buffer(attributeString).toString("base64");

Você pode enviar dados binários para as operações RecognizeText e RecognizeUtterance convertendo os dados para uma string codificada em base64 e, em seguida, enviando a string como o valor nos atributos de sessão:

"sessionAttributes" : { "binaryData": "base64 encoded data" }