{"id":20547958,"url":"https://github.com/niedsonemanoel/myzap","last_synced_at":"2025-04-14T10:41:55.249Z","repository":{"id":38736572,"uuid":"334237619","full_name":"NiedsonEmanoel/Myzap","owner":"NiedsonEmanoel","description":"Myzap - Desenvolvimento.","archived":false,"fork":false,"pushed_at":"2023-01-24T04:55:31.000Z","size":37124,"stargazers_count":7,"open_issues_count":18,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T23:51:09.236Z","etag":null,"topics":["dialogflow","node"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NiedsonEmanoel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-29T19:03:19.000Z","updated_at":"2022-10-08T18:11:08.000Z","dependencies_parsed_at":"2023-02-13T18:01:10.571Z","dependency_job_id":null,"html_url":"https://github.com/NiedsonEmanoel/Myzap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiedsonEmanoel%2FMyzap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiedsonEmanoel%2FMyzap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiedsonEmanoel%2FMyzap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiedsonEmanoel%2FMyzap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NiedsonEmanoel","download_url":"https://codeload.github.com/NiedsonEmanoel/Myzap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248867154,"owners_count":21174678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dialogflow","node"],"created_at":"2024-11-16T02:11:26.128Z","updated_at":"2025-04-14T10:41:55.210Z","avatar_url":"https://github.com/NiedsonEmanoel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"src/Controllers/Classes/Temp/myzap.png\" width=\"250\"\u003e\n    \u003ch1 align=\"center\"\u003eMyZAP-Flow\u003c/h1\u003e\n    \u003cp align=\"center\"\u003eMyZAP-Flow é um projeto open source que conecta o Dialogflow ao WhatsApp\u003cbr\u003edando suporte nativo para o reconhecimento de áudios e permite a conexão\u003cbr\u003ecom outras plataformas por meio de sua API REST.\u003c/p\u003e\n\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\n    \u003cimg src=\"https://shields.io/badge/license-MIT-green\"\u003e\n\u003c/p\u003e\n\u003ch1\u003e\u003c/h1\u003e\n\n\u003ch1\u003eInstalação: \u003c/h1\u003e\n\n\u003cp\u003e\u003cstrong\u003ePara esse projeto é recomendado que se utilize o Node v14, pois se trata de uma versão nova e estável, garantindo a execução do código sem maiores problemas.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003eAntes que seja efetuado o clone desse projeto você tem que ter em mãos os seguintes arquivos e/ou links:\u003c/p\u003e\n\u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003eLink do seu banco de dados Mongo DB\u003c/strong\u003e\u003c/li\u003e\n    \u003cspan\u003eEle é similar a esse: \u003cstrong\u003emongodb://localhost:27017/myzap-db\u003c/strong\u003e  (Onde o myzap-db é o nome do banco, você pode colocar o que quiser.)\u003c/br\u003e\u003c/span\u003e\n    \u003cspan\u003e\u003cbr/\u003eVocê pode conseguir um banco de dados mongo com até 512Mb de armazenamento gratuito em:\u003c/br\u003ehttps://www.mongodb.com/cloud/atlas/signup (Solução oficial do Mongo)\u003c/br\u003e\u003c/br\u003eCaso você queira rodar localmente indico esse tutorial do Youtube:\u003c/br\u003ehttps://www.youtube.com/watch?v=aYRkF7sHrbk\u003c/span\u003e\n    \u003ch1\u003e\u003c/h1\u003e\n    \u003cli\u003e\u003cstrong\u003eArquivo JSON do seu projeto Google Cloud Platforms\u003c/strong\u003e\u003c/li\u003e\n    \u003cspan\u003eEsse arquivo é fundamental para que seja efetuada a comunicação com seu Chatbot do Dialogflow \u003c/br\u003eCaso você não a tenha siga os passos da sessão \u003ca href=\"https://github.com/NiedsonEmanoel/Myzap-Flow#configurando-o-dialogflow\"\u003eConfigurando o Dialogflow\u003c/a\u003e.\u003c/span\u003e\n    \u003ch1\u003e\u003c/h1\u003e\n    \u003cli\u003e\u003cstrong\u003eNome do seu projeto Google Cloud Plataforms\u003c/strong\u003e\u003c/li\u003e\n    \u003cp\u003eÉ o identificador único do seu projeto, geralmente está contido dentro do JSON, mas caso você não saiba na aba \u003ca href=\"https://github.com/NiedsonEmanoel/Myzap-Flow#configurando-o-dialogflow\"\u003eConfigurando o Dialogflow\u003c/a\u003e é mostrado como fazer a coleta deste dado.\u003c/p\u003e\n    \u003ch1\u003e\u003c/h1\u003e\n\u003c/ul\u003e\n\n#\n\n\u003ch1\u003eInstalação do Projeto\u003c/h1\u003e\n\nPara clonar o projeto em seu computador local execute o seguinte comando:\n```sh\ngit clone https://github.com/NiedsonEmanoel/Myzap-Flow\n```\n#\n\n### Logo após o clone do projeto é necessário que você copie o arquivo .env-example para um arquivo .env\n\n#\nWindows:\n```sh\ncd src/\n```\n```sh\ncp .env-example .env\n```\n\n#\nLinux ou Mac:\n```sh\ncd src/ \u0026\u0026 cp .env-example .env\n```\n# \n\n\u003ch2\u003eCom o arquivo .env criado, vamos configura-lo\u003c/h2\u003e\n\n\n\n\u003cp\u003eO arquivo .env configura as variáveis de ambiente de nossa aplicação, configurar ele é um passo obrigatório.\u003c/p\u003e\n\u003cp\u003eA notação \" \u003cb\u003e./\u003c/b\u003e  \" se refere a pasta src/ do projeto, então coloque seus arquivos dentro dessa pasta.\u003c/p\u003e \n\n```sh\n#Coloque abaixo o link do seu banco de dados mongo, não se preocupe com a configuração, o myzap configura automaticamente.\nMONGO=mongodb://localhost:27017/yourdatabase\n\n#Localização do seu arquivo Json do dialogflow dentro da pasta src/\n#A notação abaixo é a mesma coisa de: /Myzap/src/seuarquivo.json\nJSON_LOCATION =./seuarquivo.json\n\n#Idioma do BOT\nLANGUAGE_CODE=pt-BR\n\n#Porta da aplicação.\nPORT=3000\n\n#Você vai utilizar o https? 0-\u003e Não, 1-\u003e Sim\nuseHTTPS=0\n\n#Localização do Certificado caso você opte pelo HTTPS.\n#Mesma regra do JSON: /Myzap/src/cert.pem\nCERT_CRT=./cert.pem\n\n#Localização da Chave privada caso você opte pelo HTTPS.\n#Mesma regra do JSON: /Myzap/src/cert.key\nCERT_KEY=./cert.key\n\n#Será implementado em versões futuras.\n#TOKENDialogflow=eb68ebf61f2dc69f3eb084531bb5dc52\n\n#Segredo utilizado na assinatura digital do JWT.\nSECRET=86d0f103bf15d37ebb1f5a23a1a4dd06\n\n#Intent que redireciona o usuário para o modo de atendimento ao cliente, onde o BOT passa a ignorar a pessoa, permitindo uma conversação normal.\n#Só é ativado esse modo após o match com a intent abaixo, por enquanto não recomendo usar pois não tenho o front para fazer esse controle.\nINTENT_SAC=Atendimento\n\n#Limites de caracteres por mensagem. 256 é o limite do dialogflow.\nCHAR_LIMIT_PER_MESSAGE=256\n\n#Enviar mensagem de verificação informando que o aparelho está em uma plataforma de automação enviando uma mensagem para o próprio número: 0-\u003e Não, 1-\u003e Sim\nSEND_NO_PISHING=0\n\n#Limite de sessões simultâneas\nSESSION_LIMIT=16\n\n#HostAplicação\nHOST=localhost\n\n#Seviço de NODEMAILER\nUSER_MAIL=\nPASSWORD_MAIL=\nSERVICE_MAIL=\n\n#Define qual engine usar: VENOM - WPPCONNECT\nENGINE=VENOM\n\n#COLOQUE O LINK E PORTA DE PRODUÇÃO DA Aplicação\nPRODUCTION_LINK=http://10.0.1.103\n\n\n#Mensagem 01 - User não cadastrado\nMESSAGE_ONE_USER_NOT_FOUND=Olá %GREETING%, você ainda não está cadastrado em nosso sistema.\n\n#Mensagem 02 - User não cadastrado\nMESSAGE_TWO_USER_NOT_FOUND=Para podermos lhe atender com uma experiência completa, digite seu nome e sobrenome.\n\n\n```\n\n#\n\n\u003ch1\u003eIniciando o projeto\u003c/h1\u003e\n\u003cp\u003ePara iniciar o projeto é bem simples, basta rodar dois comandos (O primeiro só precisa uma vez)\u003c/br\u003e\u003c/p\u003e\n\nInstalação das dependências, recomendo executar esse comando duas ou três vezes:\n```\nnpm install\n```\n\nInicialização do projeto:\n```\nnpm start\n```\n\nVai aparecer em sua janela de comando um código QR escaneie ele com seu WhatsApp e o bot entrará em pleno funcionamento.\n\n![](https://github.com/NiedsonEmanoel/Myzap-Flow/raw/092b418ec28ff35be186d48882812911db965e6a/assets/8.png)\n\n#\n\n\u003ch1\u003eInformações relevantes\u003c/h1\u003e\n\n\u003ch2\u003eConhecendo o DialogFlow\u003c/h2\u003e\n\u003cp\u003eO DialogFlow (antigo api.ai) é uma plataforma de criação de chatbots da Google com foco no processamento de linguagem natural. O processamento de linguagem natural é utilizado por diversos recursos de inteligência artificial, o seu objetivo é entender a frase e formar a melhor resposta possível para aquela frase. Ele está dividido em diversas fases. Normalização, Remoção de numerais, Remoção de Stopwords, Correção ortográfica, Stemização e Lematização. Essas etapas fazem, basicamente, a quebra da frase, para que seja possível compreender os significados e assim saber em que contexto devemos encaixar o sentido da frase.\u003c/p\u003e\n\n#\n\n\n\u003ch2\u003eConfigurando o DialogFlow\u003c/h2\u003e\n\n Vá até as configurações do DialogFlow, guarde o nome do projeto e clique no nome dele para acessarmos o painel do GCP.\n\n ![](https://github.com/NiedsonEmanoel/Myzap-Flow/raw/092b418ec28ff35be186d48882812911db965e6a/assets/3.png)\n#\n\n Entre no GCP e vá até APIs e serviços e logo após vá em credenciais.\n  \n![](https://github.com/NiedsonEmanoel/Myzap-Flow/raw/092b418ec28ff35be186d48882812911db965e6a/assets/4.png)\n#\n\nVá em contas de serviço e clique no primeiro e-mail que aparecer.\n\n![](https://github.com/NiedsonEmanoel/Myzap-Flow/raw/092b418ec28ff35be186d48882812911db965e6a/assets/5.png)\n#\n\nClique em criar chave, nova chave, escolha o formato JSON e faça o download para seu computador.\n\n![](https://github.com/NiedsonEmanoel/Myzap-Flow/raw/092b418ec28ff35be186d48882812911db965e6a/assets/6.png)\n\n\nGuarde essa chave dentro da pasta `src/` e jamais suba ela no github pois ela é a autenticadora do seu projeto e em mãos erradas pode lhe trazer grandes dores de cabeça.\n#\n\n## O que é o Venom?\nO **Venom Bot** é uma biblioteca que consegue integrar o seu número do WhatsApp abrindo por debaixo dos panos o WhatsApp Web. Uma vez que é realizada a autenticação via QR Code diretamente do terminal, você conseguirá manipular via código JavaScript toda e qualquer interação disponível no WhatsApp Web, mais especificamente pelo Node.js.\n#\n## Conclusão\nO uso da API Oficial do WhatsApp é quase insustentável e o venom cumpre bem o seu papel em permitir a manipulação do WhatsApp via código.\nSe aliando a essa biblioteca temos o DialogFlow que é um serviço da Google poderoso para a criação desses agentes automatizados e utilizar ele junto com o venom nos permite uma liberdade maior do projeto, pois o nosso bot passa a ignorar erros ortográficos e se algum trecho foi escrito em maiúsculo ou não.\nAo invés de perdemos tempo e poluirmos o codigo com testes condicionais para verificar se foi escrito por Ex: `OI` ou `Oi` ou `oi`, podemos ser mais objetivos e definirmos todas essas expressões como uma única Intent.\n#\n\n\u003ch2\u003eAgradecimentos:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orkestral/venom\"\u003eEquipe do Venom\u003c/a\u003e\u003c/li\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/66584466?s=460\u0026u=2bfbc2d39aab3e3bb62cf91c0edea2a0d3a74c06\u0026v=4\" width=\"100\" height=\"100\"\u003e\n\u003cli\u003e\u003ca href=\"https://apoastro.github.io/site/\"\u003eApoastro\u003c/a\u003e\u003c/li\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/79946507?s=60\u0026v=4\" width=\"100\" height=\"100\"\u003e\n\u003c/ul\u003e\n\n#\n\n## Sobre o autor [META]\nNiedson Emanoel – Instagram: [@niedsonemanoel](https://instagram.com/niedsonemanoel) – [contato@niedsonemanoel.com.br](mailto:contato@niedsonemanoel.com.br)\n\nDistribuído sob a licença MIT. Veja `LICENSE` para mais informações.\n#\n\n## Contribua\n\n1. Faça o _fork_ do projeto (\u003chttps://github.com/NiedsonEmanoel/Myzap-Flow/fork\u003e)\n2. Crie uma _branch_ para sua modificação (`git checkout -b feature/fooBar`)\n3. Faça o _commit_ (`git commit -am 'Add some fooBar'`)\n4. _Push_ (`git push origin feature/fooBar`)\n5. Crie um novo _Pull Request_","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniedsonemanoel%2Fmyzap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniedsonemanoel%2Fmyzap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniedsonemanoel%2Fmyzap/lists"}