Olá @Marcelo_Collares,
Você está construindo seu bot através do Builder? Se sim, verifique por favor se o item do seu menu possui payload.
O payload serve para enviar para o bot um valor diferente daquele que será exibido na tela do cliente.
Caso esteja utilizando um dos SDKs ou a API HTTP, verifique se você está enviando a propriedade value do item do seu menu. Caso esse valor e o texto do botão não existam o BLiP envia por padrão o índice do elemento no Menu.
Olá @rafaelpa,
Estou utilizando o Builder, e não estou usando payload.
Faço uma requisição HTTP e o retorno eu coloco como entrada de um script, dentro do script eu monto o JSON conforme documentação para preenchimento automático do menu. Uso o mesmo script, apenas trocando a entrada. A resposta do usuário eu utilizo para montar outra requisição HTTP e assim por diante. Todos os menus retornam o texto clicado pelo usuário, mas nesse especifico retorna o indice da palavra clicada.
@Marcelo_Collares,
poderia me enviar o código utilizado para montar o menu e um print da sua tela de log quando o usuário clica no botão e o valor do índice chega para o cliente?
Vou mandar 2 menus, um que retorna a string correta e outro que retorna o índice.
Esse primeiro é o menu que retorna a string que eu espero.
Este segundo é o menu que retorna o índice. Notem que eu utilizo o mesmo objeto, apenas trocando os itens do menu, pois utilizo o mesmo script para a montagem.
Lembrando que estou usando o Builder e estou gerando o conteúdo do menu dentro de um script igual para ambos, e retornando uma variável que alimenta um “conteúdo dinâmico” do tipo “application/vnd.lime.select+json” sem qualquer metadata extra.
Segue abaixo o script que eu utilizo para a montagem do menu.
Olá @Marcelo_Collares,
agora entendi 🙂
Você está utilizando o Builder mas construindo o menu como um conteúdo dinâmico.
O tipo de conteúdo Select (convertido para o popular Menu em canais como Facebook Messenger, por exemplo) tem algumas regras para definir o que será enviado para o cliente.
Em resumo:
- Se seu item do menu possui a propriedade value ela é enviada;
- Se seu item do menu não possui value mas possui a propriedade order então está é enviada
- Se seu item do menu não possui value e order, então a propriedade text é enviada
Para forçar o envio do texto exibido no botão, altere sua função menuItemCreation para criar um item de acordo com o JSON abaixo:
{
"order":parseInt(ordem, 10),
"text":texto,
"type":"text/plain",
"value": texto
}
Para mais detalhes veja o link abaixo:
https://docs.blip.ai/?http#select
Obs: Ainda não entendi porque um dos seus menus retorna o order e o outro apenas o label, afinal os dois são criados da mesma forma. Vou investigar mais a fundo e te aviso por aqui. 😉
Bom dia @rafaelpa, funcionou.
Não sabia que tinha essa ordem para envio de conteúdo relacionada a ausência ou omissão de propriedades, pelo menos não tinha visto isso na documentação…
É interessante que alguma coisa sempre seja enviada, só não é legar a ferramenta agir de duas formas diferentes para a mesma implementação, é um caso a se investigar assim como você colocou nas observações de sua mensagem.
Obrigado pelo atenção.