Remover Contatos de Teste dos Bots

Olá, pessoal.

Sou novo na plataforma e, depois de uma necessidade, procurei por uma solução aqui no fórum e não encontrei, então, tive que ‘dar meus pulos’. rsrsrs

Sei que muitos possuem inúmeros contatos nos seus bots, referentes aos testes e mais testes feitos para verificar a integridade do fluxo, dentre outras situações. Nesse contexto, para que a lista de contatos seja mais condizente com as interações reais que temos, pode surgir a necessidade de remover os contatos usados para teste.

Criei um script que pode ser executado via console do navegador mesmo, para facilitar, que removerá todos os contatos salvos que sejam pertencentes ao “group” = “Testers”.

O script é simples e quem quiser usar precisará, apenas, apontar as keys de autorização no array keys, dessa forma você elimina os contatos indesejados de um ou de todos os bots que usa.

function createGuid() {

    let S4 = () => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);

    let guid = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;

    return guid.toLowerCase();

}

var keys = ['YOUR_BOT_KEY_AUTHORIZATION_1', 'YOUR_BOT_KEY_AUTHORIZATION_2', 'YOUR_BOT_KEY_AUTHORIZATION_3'...,'YOUR_BOT_KEY_AUTHORIZATION_**N**']

async function listaBot(keys) {

    for (i = 0; i < keys.length; i++) {

        var myHeaders = new Headers();

        myHeaders.append("Content-Type", "application/json");

        myHeaders.append("Authorization", `${keys[i]}`);

        var raw = JSON.stringify({

            "id": `${createGuid()}`,

            "method": "get",

            "uri": "/contacts"

        });

        var requestOptions = {

            method: 'POST',

            headers: myHeaders,

            body: raw,

            redirect: 'follow'

        };

        let resposta = await mostraAtendentes(requestOptions)

        console.log(`Bot = ${[i]}`)

        for (j = 0; j < resposta.length; j++) {

            var myHeaders2 = new Headers();

            myHeaders2.append("Content-Type", "application/json");

            myHeaders2.append("Authorization", `${keys[i]}`);

            var raw2 = JSON.stringify({

                "id": `${createGuid()}`,

                "method": "delete",

                "uri": `/contacts/${resposta[j]}`

            });

            var requestOptions2 = {

                method: 'POST',

                headers: myHeaders2,

                body: raw2,

                redirect: 'follow'

            };

            deletaAtendentes(requestOptions2)

        }

    }

}

async function mostraAtendentes(requestOptions) {

    const minhaFetch = await fetch("https://http.msging.net/commands", requestOptions);

    const respostaRequisicao = await minhaFetch.json();

    var dados = await respostaRequisicao.resource.items;

    var atendenteTester = await dados.filter(m => m.group == 'Testers').map(m => m.identity)

    return atendenteTester

}

async function deletaAtendentes(requestOptions2) {

    const minhaFetch = await fetch("https://http.msging.net/commands", requestOptions2);

    const respostaRequisicao = await minhaFetch.json();

    console.log(respostaRequisicao.id)

}

listaBot(keys)

Pode haver necessidade de adequação no script ou que ele seja executado mais de uma vez, a depender da sua quantidade de contatos a serem removidos.

O script é ‘pré-setado’ para remoção dos contatos Testers, mas com pequenas adaptações, pode ser usado para remover qualquer grupo ou tipo de contatos.

Espero que ajude.

Essa é minha primeira postagem, perdoem minhas falhas.

6 curtidas

Nossa, salvei aqui. Muito bom.

2 curtidas

Que maravilhoso! :blipinlove:

O @Randerson_Fonceca mal chegou na Blip Community e já trouxe um tutorial desses? Ansiosa para ver o que mais você pode compartilhar com a gente, hein? Seja muitíssimo bem-vindo!

1 curtida

@Bruno_Gabriel espero que possa te ajudar a remover a ‘sujeira’ dos contatos de teste. Qualquer coisas, é só chamar.

@Bia Obrigado pela receptividade, Bia. Espero poder colaborar ainda mais no futuro.

1 curtida