Executando verificação de segurança...
11

Como eu mandei mensagem para mais de 400 contatos com Node.js Streams

Antes de mais nada, queria falar que tudo que será discutido aqui é com o intuito de compartilhar conhecimento, todos os contatos que enviei as mensagens estavam de acordo em recebê-las. Caso você use isso para algum fim que não seja aprendizado (até mesmo para aprendizado), a responsabilidade será inteiramente sua!

Vamos lá

Recentemente precisei enviar uma mensagem pra uma lista de números de whatsapp, porém a lista possuia 430 contatos. Olhando de forma computacional é um número relativamente pequeno, mas se precisar mandar 1 a 1, cara... Então logo pensei, "por que não automatizar isso?". E conversando com um amigo, ele me mandou uma biblioteca chamada WPPCONNECT, um projetinho open source muuuuito daora que pode proporcionar funções do Whatsapp Web para o Node.

A essa altura já tinha minha lista e uma lib que podia enviar as mensagens, então estava com a faca e o queijo na mão, certo? Errado!!!! Inocentemente comecei a rodar um script que iterava a lista e mandava a mensagem para o contato, porém depois de poucas mensagens enviadas, logo o Whatsapp detectou o comportamento estranho e me deslogou do app, encerrando assim a sessão na lib.

Me encontrava em um cenário em que tinha que enviar uma determinada quantidade de mensagens (1 nesse caso) em um determinado limite de tempo (rate limit), e assim que me toquei disso, me lembrei de um vídeo do Erick Wendel que ele basicamente ensina step by step a como fazer isso usando uma ferramenta MONSTRA do Nodejs, que são as Streams.

E somente com isso consegui automatizar o envio de mensagens para mais de 400 contatos usando Node.js Streams.

Para vcê que deseja ver como ficou o simples código, pode dar uma olhadinha aqui.

Carregando publicação patrocinada...
1
1
1

Gostei bastante da forma que descreveu o seu problema e como chegou a solução e ainda compartilhou tudo! fenomenal, parabéns.

Po so eu que fiquei querendo ler mais como vc doi esbarrou num problema e ia resolvendo, tipo uma trhead?

1

valeeeu, meu camarada!!
cara, não sou muito bom em produzir haha, se puder dar um pouquinho mais do que você acha interessante eu falar acho que posso desenrolar.

1

Primeiramente, massa demais a solução cara.

Como Juninho, fiquei com um pensamento aqui, além da escalabilidade, qual o motivo de usar streams ao invés de só ler o csv com os dados e depois executar isso com um intervalo entre as requisições pro whatsapp? pergunta honesta haha.

1

Valeeeu, meu nobre!!

Então, no meu pensamento também de Juninho, com as Streams a gente consegue fazer todo esse processo direto no pipeline, em que todos o middlewares serão apenas extensões do Transform, aí não é preciso separar, saca?