Olá @ricklgoncalves,
existem diferentes maneiras de resolver este problema:
1- Criar um REGEX de validação na entrada do usuário onde estas palavras não são permitidas;
2- Criar uma API do seu lado para receber a entrada do usuário e realizar esse filtro;
3- Utilizar uma ação do tipo Script JS para realizar esse filtro;
A escolha da solução vai depender muito do contexto de vocês: tamanho da blacklist e etc.
Sugiro pensar em uma solução reaproveitável usando uma API 😉
@rafaelpa fiz um função em JS, bem simples pra testar se isso funcionaria fazendo o filtro de entrada de JS ali no builder, mas percebi que quando tenho um “for” na função ele não faz nada, quando testo bot ele nao executa e se mando uma nova mensagem ele vai pra exceção.
Exemplo func:
// Receive the variables as parameters
function run(oQueDesejaClient) {
var swear_words_arr=new Array(“merda”,“bosta”,“viado”);
var prohibitedWord = “”;
var compare_text=oQueDesejaClient;
var resultado = 0;
var texto = oQueDesejaClient;
for(var i=0; i<swear_words_arr.length; i++){
if (texto.indexOf(swear_words_arrxi]) >= 0) {
resultado = resultado+1;
}
}
return resultado;
}
Olá @ricklgoncalves,
fiz uma pequena alteração no seu script e obtive o resultado que você espera.
Segue script final:
// Receive the variables as parameters
function run(oQueDesejaClient) {
var swear_words_arr = r"merda", "bosta", "viado"];
var prohibitedWord = "";
var compare_text = oQueDesejaClient;
var resultado = 0;
var texto = oQueDesejaClient;
for (var i = 0; i < swear_words_arr.length; i++) {
if (texto.indexOf(swear_words_arr_i]) >= 0) {
resultado = resultado + 1;
}
}
return resultado;
}
Observações:
- Para a ação de script JS, o Builder utiliza a versão ECMA 5.1, fique atento ao utilizar alguma função nativa e verifique se existe compatibilidade nessa versão.
- Lembre-se de adicionar a(s) variável(is) no campo variáveis de entrada para a função
Valeu, funcionou certinho!