Skip to main content

Boa tarde, pessoal.

Sou eu novamente haha.

Bom, eu estou enfrentando alguns problemas para acessar os valores do input.content. Eu estou usando o canal do Instagram e BlipChat para realizar os testes. Em determinado ponto do meu fluxo eu moquei o valor input.content para ver o seus valores, obtive isso {"recipeId":79960,"option":"Receita completa"} testando no Blipchat

Dependendo da opção que eu escolher no carrossel o recipeId pode mudar, o option será sempre a mesma.

Porém, tentando no canal do instagram o input.content me retorna apenas o valor da opção.

Como eu poderia tratar isso para que funcionasse no Insta?

Obrigado pela ajuda, pessoal!

 

Boa tarde, pessoal.

Sou eu novamente haha.

Bom, eu estou enfrentando alguns problemas para acessar os valores do input.content. Eu estou usando o canal do Instagram e BlipChat para realizar os testes. Em determinado ponto do meu fluxo eu moquei o valor input.content para ver o seus valores, obtive isso {"recipeId":79960,"option":"Receita completa"} testando no Blipchat

Dependendo da opção que eu escolher no carrossel o recipeId pode mudar, o option será sempre a mesma.

Porém, tentando no canal do instagram o input.content me retorna apenas o valor da opção.

Como eu poderia tratar isso para que funcionasse no Insta?

Obrigado pela ajuda, pessoal!

 

Olá ​@leonardorubio_ tudo bem ? 

Crie um script que saiba fazer a leitura de forma geral e sempre retorne o valor que você pecise de forma clara para navegação do bot. 

Exemplo : 

function run(entrada) {    
let dados;
try {
dados = JSON.parse(entrada);
return dados.option;
} catch (e) {
console.error("Erro ao fazer o parse da entrada:", e);
return entrada;
}


}

 


Tudo bem por aqui, obrigado pela ajuda ​@Rafael_Figueiredo 

Entendi o script. Porém, não sei se ficou claro a minha dúvida, vou tentar explicar melhor.

 

Eu estou usando dois canais, o Blipchat e o Instagram. 

Quando realizo os testes pelo blip e coloco a variável {{input.content}} ela me retorna esse valor {"recipeId":79960,"option":"Receita completa"} , mas quando vou testar no Instagram, ela me exibe apenas a opção, que seria Receita completa, eu precisaria do recipeId também para fazer uma chamada http mais afrente no fluxo, mas ele não me exibe essa informação, não sei se é alguma limitação do canal do instagram.


Tudo bem por aqui, obrigado pela ajuda ​@Rafael_Figueiredo 

Entendi o script. Porém, não sei se ficou claro a minha dúvida, vou tentar explicar melhor.

 

Eu estou usando dois canais, o Blipchat e o Instagram. 

Quando realizo os testes pelo blip e coloco a variável {{input.content}} ela me retorna esse valor {"recipeId":79960,"option":"Receita completa"} , mas quando vou testar no Instagram, ela me exibe apenas a opção, que seria Receita completa, eu precisaria do recipeId também para fazer uma chamada http mais afrente no fluxo, mas ele não me exibe essa informação, não sei se é alguma limitação do canal do instagram.

@leonardorubio_ nesse caso pode ser uma limitação do propio canal, peço que tente inserir o recipeid nos extras do contato e capturar ele de outra forma para usar em sua requisição http. 


Tudo bem por aqui, obrigado pela ajuda ​@Rafael_Figueiredo 

Entendi o script. Porém, não sei se ficou claro a minha dúvida, vou tentar explicar melhor.

 

Eu estou usando dois canais, o Blipchat e o Instagram. 

Quando realizo os testes pelo blip e coloco a variável {{input.content}} ela me retorna esse valor {"recipeId":79960,"option":"Receita completa"} , mas quando vou testar no Instagram, ela me exibe apenas a opção, que seria Receita completa, eu precisaria do recipeId também para fazer uma chamada http mais afrente no fluxo, mas ele não me exibe essa informação, não sei se é alguma limitação do canal do instagram.

@leonardorubio_ nesse caso pode ser uma limitação do propio canal, peço que tente inserir o recipeid nos extras do contato e capturar ele de outra forma para usar em sua requisição http. 


@Rafael_Figueiredo , fiz aqui como orientou, mas ele não coleta a informação nos extras do contato. Fiz da seguinte forma.

 

Key: receitasID

Value: {{input.content@recipeId}}

 

Quando vou conferir nos extras do contato ele aparece em branco. 

Nesse caso, como se trata de uma limitação do canal, como eu poderia prosseguir com essa questão?

No momento que é apresentado para o cliente o carrossel no Instagram, é apresentado dois botões, Receita completa e voltar. Como eu poderia coletar o ID da receita que ele selecionou, não vejo outra maneira sem o input.content.
 



 

 


Tudo bem por aqui, obrigado pela ajuda ​@Rafael_Figueiredo 

Entendi o script. Porém, não sei se ficou claro a minha dúvida, vou tentar explicar melhor.

 

Eu estou usando dois canais, o Blipchat e o Instagram. 

Quando realizo os testes pelo blip e coloco a variável {{input.content}} ela me retorna esse valor {"recipeId":79960,"option":"Receita completa"} , mas quando vou testar no Instagram, ela me exibe apenas a opção, que seria Receita completa, eu precisaria do recipeId também para fazer uma chamada http mais afrente no fluxo, mas ele não me exibe essa informação, não sei se é alguma limitação do canal do instagram.

@leonardorubio_ nesse caso pode ser uma limitação do propio canal, peço que tente inserir o recipeid nos extras do contato e capturar ele de outra forma para usar em sua requisição http. 


@Rafael_Figueiredo , fiz aqui como orientou, mas ele não coleta a informação nos extras do contato. Fiz da seguinte forma.

 

Key: receitasID

Value: {{input.content@recipeId}}

 

Quando vou conferir nos extras do contato ele aparece em branco. 

Nesse caso, como se trata de uma limitação do canal, como eu poderia prosseguir com essa questão?

No momento que é apresentado para o cliente o carrossel no Instagram, é apresentado dois botões, Receita completa e voltar. Como eu poderia coletar o ID da receita que ele selecionou, não vejo outra maneira sem o input.content.
 



 

 

@leonardorubio_ a ideia seria capturar ele de onde for gerado tipo se for um sistema interno pega o valor que ele geraria para pessoa e faria o set sem ser do input.content de outra variavel gerada por um http sabe. 


Tudo bem por aqui, obrigado pela ajuda ​@Rafael_Figueiredo 

Entendi o script. Porém, não sei se ficou claro a minha dúvida, vou tentar explicar melhor.

 

Eu estou usando dois canais, o Blipchat e o Instagram. 

Quando realizo os testes pelo blip e coloco a variável {{input.content}} ela me retorna esse valor {"recipeId":79960,"option":"Receita completa"} , mas quando vou testar no Instagram, ela me exibe apenas a opção, que seria Receita completa, eu precisaria do recipeId também para fazer uma chamada http mais afrente no fluxo, mas ele não me exibe essa informação, não sei se é alguma limitação do canal do instagram.

@leonardorubio_ nesse caso pode ser uma limitação do propio canal, peço que tente inserir o recipeid nos extras do contato e capturar ele de outra forma para usar em sua requisição http. 


@Rafael_Figueiredo , fiz aqui como orientou, mas ele não coleta a informação nos extras do contato. Fiz da seguinte forma.

 

Key: receitasID

Value: {{input.content@recipeId}}

 

Quando vou conferir nos extras do contato ele aparece em branco. 

Nesse caso, como se trata de uma limitação do canal, como eu poderia prosseguir com essa questão?

No momento que é apresentado para o cliente o carrossel no Instagram, é apresentado dois botões, Receita completa e voltar. Como eu poderia coletar o ID da receita que ele selecionou, não vejo outra maneira sem o input.content.
 



 

 

@leonardorubio_ a ideia seria capturar ele de onde for gerado tipo se for um sistema interno pega o valor que ele geraria para pessoa e faria o set sem ser do input.content de outra variavel gerada por um http sabe. 

 

 

Então, nesse caso ele consegue essa informação através de uma requisição http, esse response é tratado então em outro script que irá montar o carrossel com os itens conforme abaixo.

 

{
"type": "application/vnd.lime.collection+json",
"content": {
"itemType": "application/vnd.lime.document-select+json",
"items": a
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Chocolate Gelado com Calda de Cereja",
"text": "Dificuldade: Fácil\nPorções: 4\nTotal: 5 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/0e9fa92839009a1f2bea32dcc7c1256d_chocolate-gelado-com-calda-de-cereja-receitas-nestle.jpg"
}
},
"options":
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74043,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Receita de Biscoito de Cereal Matinal Negresco e Coco",
"text": "Dificuldade: Fácil\nPorções: 16\nTotal: 25 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/744a9880ce500fa0dfe2993f31ece927_biscoito-cheerios-coco-receitas-nestle.jpg"
}
},
"options":
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74066,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Cookie de Nesfit",
"text": "Dificuldade: Fácil\nPorções: 60\nTotal: 40 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/2936a6b5fc5e8d8f06deb1481ae4ed3e_cookie-nesfit-receitas-nestle.jpg"
}
},
"options":
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74094,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Creme de Peras, Camomila e Mel",
"text": "Dificuldade: Fácil\nPorções: 1\nTotal: 5 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/e4ea9ed2fc64477cc98fd86ff6b9af43_creme-pera-camomila-mel-receitas-nestle.jpg"
}
},
"options":
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74125,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Cappuccino Nesfit Cremoso",
"text": "Dificuldade: Fácil\nPorções: 1\nTotal: 5 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/138787a50bb054554b1d1ab414cf716d_cappuccino-nesfit-cremoso-receitas-nestle.jpg"
}
},
"options":
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74214,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Pancake de Quinoa",
"text": "Dificuldade: Fácil\nPorções: 6\nTotal: 20 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/6045e37403e620c0b72f0b66f281df97_pancake-quinoa-receitas-nestle.jpg"
}
},
"options": <
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 74291,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Pão Pioca",
"text": "Dificuldade: Fácil\nPorções: 40\nTotal: 50 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/62f04406f2a9f8b55b8bcd719e3b8ce8_pao-pioca-receitas-nestle.jpg"
}
},
"options": j
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 73382,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Banana Quentinha com Ninho, Aveia e Mel",
"text": "Dificuldade: Fácil\nPorções: 1\nTotal: 5 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/e5be0bb673881378b4e93daf7a0881ec_banana-quentinha-receitas-nestle.jpg"
}
},
"options": l
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 73921,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Bebida com Goji Berry",
"text": "Dificuldade: Fácil\nPorções: 1\nTotal: 25 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/5c4f6423365803bc4f21dff89bc1a2f4_bebida-goji-berry-receitas-nestle.jpg"
}
},
"options": e
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 73935,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
},
{
"header": {
"type": "application/vnd.lime.media-link+json",
"value": {
"title": "Bolo de Abobrinha Nesfit",
"text": "Dificuldade: Fácil\nPorções: 15\nTotal: 60 minutos",
"type": "image/jpeg",
"uri": "https://images.aws.nestle.recipes/original/b80ad0486d33b4a1a685484c48cfda1c_bolo-abobrinha-nesfit-receitas-nestle.jpg"
}
},
"options": s
{
"label": {
"type": "text/plain",
"value": "Receita completa"
},
"value": {
"type": "application/json",
"value": {
"recipeId": 73963,
"option": "Receita completa"
}
}
},
{
"label": {
"type": "text/plain",
"value": "Voltar"
},
"value": {
"type": "application/json",
"value": {
"option": "Voltar"
}
}
}
]
}
]
}
}

 


@leonardorubio_  nesse caso faça um script que pegue esse body para extrair o recipeId e o option e guarde o retorno quando a pessoa responde e se o canal for o instagram vc roda mais um script para pegar o input da pessoa e retorna o recepeid e setar dentro do extras. Sim entendo que é um pouco complexo tudo isso, mas é como pensei para contornar o cenário do instagram. 


Valeu a dica, ​@Rafael_Figueiredo.

Eu fiz um script aqui que ele recebe o Body e depois extrai somente o recipeId e o option e deu certo, agora o que ficou um pouco confuso foi a parte que você mencionou o segundo script que ira pegar o input do usuário e retornar o recipeId.

Poderia me explicar como eu poderia fazer esse segundo script? Como eu poderia pegar o input do usuário e retornar o recipeId?

Como base no script que fiz, ele me retorna assim.
 

j
{
"recipeId": 74214,
"option": "Receita completa"
},
{
"recipeId": null,
"option": "Voltar"
},
{
"recipeId": 74291,
"option": "Receita completa"
},
{
"recipeId": null,
"option": "Voltar"
}
]




 


O segundo script eu pensei em algo mais ou menos assim.

 

 

function run(recipeIdExtraido, userInput) {
var recipes = JSON.parse(recipeIdExtraido);

var result = {
isValid: false,
message: "Receita não encontrada."
};

for (var i = 0; i < recipes.length; i++) {
var recipe = recipespi];

if (recipe.recipeId && recipe.recipeId.toString() === userInput) {
result.isValid = true;
result.message = "Receita encontrada: " + recipe.recipeId;
break;
}
}

return JSON.stringify(result);
}

 


Valeu a dica, ​@Rafael_Figueiredo.

Eu fiz um script aqui que ele recebe o Body e depois extrai somente o recipeId e o option e deu certo, agora o que ficou um pouco confuso foi a parte que você mencionou o segundo script que ira pegar o input do usuário e retornar o recipeId.

Poderia me explicar como eu poderia fazer esse segundo script? Como eu poderia pegar o input do usuário e retornar o recipeId?

Como base no script que fiz, ele me retorna assim.
 

j
{
"recipeId": 74214,
"option": "Receita completa"
},
{
"recipeId": null,
"option": "Voltar"
},
{
"recipeId": 74291,
"option": "Receita completa"
},
{
"recipeId": null,
"option": "Voltar"
}
]




 

@leonardorubio_ isso mesmo você vai salvar ai pode ser pela propia variavel para usar na request mesmo ou dentro do contato com o definir contato. 

Ah e sobre seu segundo a logica e essa mas no teste que eu fiz deu esse retorno é isso mesmo?

 


@Rafael_Figueiredo, bom dia!
Tudo bem?

o retorno deveria ser algo assim.

 

Porém, ao buscar pela variável no beholder ele me retorna isso, ou seja, pelo input do usuário, ele não consegue distinguir somente por “Receita completa”, que é o que ele salva no input.content, tentei com input.message e também não coleta o ID da receita, somente o option. 
 


 

 

Na captura acima, onde ele apresenta somente o “Receita completa” foi onde eu fiz o mock das variáveis input.content e .message.


@Rafael_Figueiredo, bom dia!
Tudo bem?

o retorno deveria ser algo assim.

 

Porém, ao buscar pela variável no beholder ele me retorna isso, ou seja, pelo input do usuário, ele não consegue distinguir somente por “Receita completa”, que é o que ele salva no input.content, tentei com input.message e também não coleta o ID da receita, somente o option. 
 


 

 

Na captura acima, onde ele apresenta somente o “Receita completa” foi onde eu fiz o mock das variáveis input.content e .message.

@leonardorubio_  vou testar aqui e criar uma logica para isso, mas suspeito que o script pode estar com comportamento estranho dentro do blip


Comente