Node: link para download
Git: link para download
BOTZDG + EMAIL
1- INSTALAR GIT E NODE
2- INSTALAR A API
a. criar pasta e arquivos
b. npm install
c. configurar acesso do email
d. node botzdg_email.js
# CREDENCIAIS GMAIL
EMAIL_SERVICE=gmail
EMAIL_USER=zapdasgalaxias@gmail.com
EMAIL_PASS=nb
{"name":"bot-zdg","version":"1.0.0","description":"bot-zdg: based on Whatsapp API","main":"app.js","scripts":{"start":"node .\botzdg_typebot_stop.js","start:dev":"nodemon app.js","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["whatsapp-api","node.js"],"author":"Pedro","license":"MIT","dependencies":{"axios":"^1.5.0","dotenv":"^16.0.3","express":"^4.17.1","express-fileupload":"^1.2.0","express-validator":"^6.9.2","http":"0.0.1-security","moment-timezone":"^0.5.43","nodemailer":"^6.9.5","qrcode":"^1.4.4","qrcode-terminal":"^0.12.0","socket.io":"2.3.0","whatsapp-web.js":"https:\/\/github.com\/Julzk\/whatsapp-web.js\/tarball\/jkr_hotfix_7"},"devDependencies":{"nodemon":"^2.0.19"}}
WPP API by Pedrinho da NASA
require('dotenv').config({path: __dirname + '/.env'})
const { Client, LocalAuth } = require('whatsapp-web.js');
const express = require('express');
const socketIO = require('socket.io');
const qrcode = require('qrcode');
const http = require('http');
const fileUpload = require('express-fileupload');
const port = 8000;
const app = express();
const server = http.createServer(app);
const io = socketIO(server);
const nodemailer = require('nodemailer');
const moment = require('moment-timezone');
app.use(express.json());
app.use(express.urlencoded({
extended: true
}));
app.use(fileUpload({
debug: true
}));
app.use("/", express.static(__dirname + "/"))
app.get('/', (req, res) => {
res.sendFile('index.html', {
root: __dirname
});
});
const client = new Client({
authStrategy: new LocalAuth({ clientId: 'email' }),
puppeteer: { headless: true,
executablePath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--no-first-run',
'--no-zygote',
'--single-process', // <- this one doesn't works in Windows
'--disable-gpu'
] }
});
client.initialize();
io.on('connection', function(socket) {
socket.emit('message', '© BOT-ZDG - Iniciado');
socket.emit('qr', './icon.svg');
client.on('qr', (qr) => {
console.log('QR RECEIVED', qr);
qrcode.toDataURL(qr, (err, url) => {
socket.emit('qr', url);
socket.emit('message', '© BOT-ZDG QRCode recebido, aponte a câmera seu celular!');
});
});
client.on('ready', async () => {
socket.emit('ready', '© BOT-ZDG Dispositivo pronto!');
socket.emit('message', '© BOT-ZDG Dispositivo pronto!');
socket.emit('qr', './check.svg')
console.log('© BOT-ZDG Dispositivo pronto');
});
client.on('authenticated', () => {
socket.emit('authenticated', '© BOT-ZDG Autenticado!');
socket.emit('message', '© BOT-ZDG Autenticado!');
console.log('© BOT-ZDG Autenticado');
});
client.on('auth_failure', function() {
socket.emit('message', '© BOT-ZDG Falha na autenticação, reiniciando...');
console.error('© BOT-ZDG Falha na autenticação');
});
client.on('change_state', state => {
console.log('© BOT-ZDG Status de conexão: ', state );
});
client.on('disconnected', (reason) => {
socket.emit('message', '© BOT-ZDG Cliente desconectado!');
console.log('© BOT-ZDG Cliente desconectado', reason);
client.initialize();
});
});
const SendEmail = (async ({zdgSubject, zdgText, zdgFileName, zdgContent, zdgTo}) => {
const transporter = nodemailer.createTransport({
service: process.env.EMAIL_SERVICE,
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS
}
});
const mailOptions = {
from: process.env.EMAIL_USER,
to: zdgTo,
subject: zdgSubject,
text: zdgText,
attachments: [
{
filename: zdgFileName,
content: zdgContent
}
]
};
try {
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log('ZDG E-mail erro: ' + error);
} else {
console.log('ZDG E-mail enviado: ' + info.response);
}
});
}
catch (err) {
throw new AppError_1.default("ERR_SENDING_EMAIL");
}
})
const ZDGEmailAttach = (async (messagesList, zdgTo) => {
const zdgSubject = 'Conversas';
const zdgText = 'Conversa exportada do WhatsApp';
const zdgFileName = 'ZDG.txt';
const promises = messagesList.map(async (message) => {
const body = message.body;
const fromMe = message.fromMe;
const timestamp = message.timestamp;
return 'Message: ' + body + '\nFrom me: ' + fromMe + '\nTimestamp: ' + moment.unix(timestamp).tz('America/Sao_Paulo').format('YYYY-MM-DD HH:mm:ss') + '\n-----\n\n';
})
const allMessages = await Promise.all(promises);
const zdgContent = allMessages.toString().replace(/,/g, "");
console.log(allMessages)
try {
const response = await SendEmail({zdgSubject, zdgText, zdgFileName, zdgContent, zdgTo});
return response;
} catch (error) {
console.error(error);
}
})
client.on('message', async msg => {
let chat = await msg.getChat();
if (msg.body.includes('@')){
const messagesList = await chat.fetchMessages();
await ZDGEmailAttach(messagesList, msg.body);
}
});
console.log("\nA Comunidade ZDG é a oportunidade perfeita para você aprender a criar soluções incríveis usando as APIs, sem precisar de experiência prévia com programação. Com conteúdo exclusivo e atualizado, você terá tudo o que precisa para criar robôs, sistemas de atendimento e automações do zero. O curso é projetado para iniciantes e avançados, e oferece um aprendizado prático e passo a passo para que você possa criar soluções incríveis.")
console.log("\nIncreva-se agora acessando link: comunidadezdg.com.br\n")
server.listen(port, function() {
console.log('App running on *: ' + port);
});
Comunidade ZDG © 2020 | Praça Getúlio Vargas, 176, Alfenas – MG, CEP 37.130-073 | Tel: (35) 9 8875-4197 | E-mail: [email protected] | Política de Privacidade | Termos de Uso
Art. 49 do Código de Defesa do Consumidor | GARANTIA TOTAL DE 7 DIAS | Este produto não garante a obtenção de resultados. Qualquer referência ao desempenho de uma estratégia não deve ser interpretada como uma garantia de resultados.
Oiê! Tem alguma dúvida? Clique aqui!
Conheça nosso sistema avançado com suporte para a API oficial do WhatsApp