Este projeto usa como base o Venom-bot e WPPConnect , um navegador virtual sem interface gráfica que abre o whatsapp web e executa todos os comandos via código possibilitando assim a automação de todas as funções, e um fork do projeto myzap do @billbarsch.
$ sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget build-essential apt-transport-https libgbm-dev
# Ir para seu diretório home
$ cd ~
# Recuperar o script de instalação para sua versão de preferência
$ curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
# Execute o script
$ sudo bash nodesource_setup.sh
# Instalar o pacote Node.js
$ sudo apt install -y git nodejs yarn gcc g++ make
# Remover pacotes que não são mais necessários
$ sudo apt autoremove -y
# Clone este repositório
$ git clone https://github.com/AlanMartines/mywhats-api-node.git
# Acesse a pasta do projeto no terminal/cmd
$ cd mywhats-api-node
# Instale as dependências
$ npm install
# Execute a aplicação
$ node index.js
# Manter os processos ativos a cada reinicialização do servidor
$ sudo npm install pm2 -g
$ pm2 start index.js
$ pm2 save
$ pm2 startup
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ${USER} --hp /home/${USER}
# Para remover do init script
$ pm2 unstartup systemd
# O servidor iniciará na porta:9000
# Pronto, escaneie o código QR-Code do Whatsapp e aproveite!
router.post("/Start", (req, res, next) => {
const response = await fetch('http://localhost:9000/sistema/Start', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
sessionName: req.body.SessionName
}
)
});
const content = await response.json();
return content;
});
router.post("/QRCode", (req, res, next) => {
const response = await fetch('http://localhost:9000/sistema/QRCode', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
sessionName: req.body.SessionName,
View: "true"
}
)
});
const content = await response.json();
return content;
});
router.post("/QRCode", (req, res, next) => {
const response = await fetch('http://localhost:9000/sistema/QRCode', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
sessionName: req.body.SessionName,
View: "false"
}
)
});
const content = await response.json();
return content;
});
router.post("/Close", (req, res, next) => {
const response = await fetch('http://localhost:9000/sistema/Close', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
sessionName: req.body.SessionName
}
)
});
const content = await response.json();
return content;
});
- Crie uma conta grátis no https://jsonbin.io/
- Crie um novo "bin" (objeto json) com quaisquer dados e copie o id dele e coloque no arquivo .env
- Copie também o seu token de acesso à api do jsonbin.io e coloque no arquivo .env
...
JSONBINIO_BIN_ID=23452345345 <- aqui
JSONBINIO_SECRET_KEY=345234532452452345243 <- aqui
...
- Com esses dados o mywhats-api-node irá gravar o token na nuvem e poderá ser executado em várias instancias diferentes por exemplo no Gooogle Cloud Run
# Ir para seu diretório home
$ cd ~
# Clone este repositório
$ git clone https://github.com/AlanMartines/mywhats-api-node.git
# Acesse a pasta do projeto no terminal/cmd
$ cd mywhats-api
# Processando o arquivo Dockerfile
$ docker build -t alanmartines/nodejs-mywhats-api-node:1.0 .
# Criar um contêiner
$ docker container run --name mywhats-api-node -p 9000:9000 -d alanmartines/nodejs-mywhats-api-node:1.0
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot
sudo certbot certonly --manual --force-renewal -d *.yourdomain.net -d yourdomain.net --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
Este projeto se encontra em desenvolvimento, então pode conter erros.