`whatsapp-web.js` — это библиотека на JavaScript, которая позволяет вам взаимодействовать с WhatsApp Web через программный интерфейс. Чтобы начать работу с этой библиотекой, сначала необходимо установить её с помощью npm или yarn:
```bash
npm install whatsapp-web.js
```
Или:
```bash
yarn add whatsapp-web.js
```
Для создания клиента WhatsApp и проверки наличия сессии можно использовать следующий код:
```javascript
const { Client } = require('whatsapp-web.js');
const fs = require('fs');
// Путь к файлу, где будут храниться данные сессии. Эти данные нужны для того,
// чтобы не проходить процесс аутентификации каждый раз.
const SESSION_FILE_PATH = './session.json';
// Загрузим данные сессии, если они существуют
let sessionData;
if (fs.existsSync(SESSION_FILE_PATH)) {
sessionData = require(SESSION_FILE_PATH);
}
// Создайте экземпляр клиента WhatsApp с помощью сохраненной сессии (если она есть)
const client = new Client({
session: sessionData
});
client.on('qr', qr => {
// QR код генерируется только в том случае, если сессия не сохранена/не найдена.
console.log('QR RECEIVED', qr);
});
client.on('authenticated', session => {
console.log('AUTHENTICATED', session);
// Сохраняем данные аутентификации сессии в файл, чтобы использовать их в будущем
sessionData = session;
fs.writeFileSync(SESSION_FILE_PATH, JSON.stringify(session));
});
client.on('ready', () => {
console.log('Client is ready!');
// Здесь вы можете проверить, что клиент подключился и готов к использованию
});
client.on('auth_failure', msg => {
// На случай, если аутентификация не удастся (например, при неверной сессии)
console.error('AUTHENTICATION FAILURE', msg);
});
// Подключите клиента к WhatsApp
client.initialize();
```
В этом примере мы сначала проверяем, существует ли файл сессии `session.json`. Если он существует, мы загружаем данные сессии и передаем их в обьект конфигурации при создании нового экземпляра клиента. Если сессия валидна, клиент подключается к WhatsApp без необходимости сканировать QR-код.
Событие `qr` будет вызвано, если требуется сканировать QR-код для аутентификации — это означает, что сессия либо отсутствует, либо уже не действительна.
Обработчик `authenticated` запускается после успешной аутентификации и позволяет вам сохранить данные сессии для будущего использования, что позволяет клиенту подключаться без повторного сканирования QR-кода.
Событие `ready` указывает, что клиент готов к использованию, а `auth_failure` сигнализирует о проблеме аутентификации.
Важно помнить, что файл сессии должен быть защищен, поскольку он содержит чувствительные данные, дающие доступ к вашему аккаунту WhatsApp.