|
|
|
@ -44,6 +44,7 @@ waEmitter.on('connection:close', event => {
|
|
|
|
|
|
|
|
|
|
const createWhatsApp = async phone => {
|
|
|
|
|
let waSocket = null;
|
|
|
|
|
let qrCode = null;
|
|
|
|
|
const channelId = generateId();
|
|
|
|
|
const whatsAppNo = phone;
|
|
|
|
|
const { state, saveCreds } = await useMultiFileAuthState('baileys_auth_info/' + phone + '_' + channelId);
|
|
|
|
@ -254,22 +255,32 @@ const createWhatsApp = async phone => {
|
|
|
|
|
const { connection, lastDisconnect, qr } = update;
|
|
|
|
|
|
|
|
|
|
if (connection === 'close') {
|
|
|
|
|
// waSocket.end(error => console.error('end.error: ', error));
|
|
|
|
|
// waSocket.logout(msg => console.error('logout.msg: ', msg));
|
|
|
|
|
console.log('Connection closed: ', lastDisconnect);
|
|
|
|
|
if((lastDisconnect?.error)?.output?.statusCode !== DisconnectReason.loggedOut) {
|
|
|
|
|
start();
|
|
|
|
|
} else {
|
|
|
|
|
console.log('Connection closed: ', lastDisconnect);
|
|
|
|
|
|
|
|
|
|
waEmitter.emit('connection:close', {
|
|
|
|
|
whatsAppNo,
|
|
|
|
|
status: 'offline',
|
|
|
|
|
});
|
|
|
|
|
waEmitter.emit('connection:close', {
|
|
|
|
|
whatsAppNo,
|
|
|
|
|
status: 'offline',
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else if (connection === 'open') {
|
|
|
|
|
// 扫码成功后向这个群发消息,后续就能使用 API 发送了。
|
|
|
|
|
sendTextMessage('120363363417115199@g.us', whatsAppNo + ' 扫码成功:' + new Date().toString());
|
|
|
|
|
waEmitter.emit('connection:open', {
|
|
|
|
|
status: 'open', whatsAppNo
|
|
|
|
|
});
|
|
|
|
|
} else if (qr !== undefined) {
|
|
|
|
|
// WebSocket 创建成功等待扫码,如果没有扫码会更新 qr
|
|
|
|
|
// 第一次一分钟,后面是 20 秒更新一次
|
|
|
|
|
resolve(qr);
|
|
|
|
|
if (qrCode === null) {
|
|
|
|
|
qrCode = qr;
|
|
|
|
|
resolve(qr);
|
|
|
|
|
} else {
|
|
|
|
|
waSocket.logout(() => '二维码已过期');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|