Бесплатная отправка сообщений в Whatsapp бот из 1С

08.06.22

Интеграция - Мессенджеры и боты

Задача: Имеются 200 контрагентов, которым ежедневно нужно из отчета 1С выслать сумму их задолженности или предоплаты в Whatsapp (рассылка должна идти с номера менеджера этих контрагентов).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Whatsapp рассылка дебиторки
.epf 8,90Kb
42
42 Скачать (2 SM) Купить за 2 150 руб.
мой index.js
.js 3,23Kb
37
37 Скачать (2 SM) Купить за 2 150 руб.

Первым делом посмотрел публикации на infostart, но в большинстве решений просят денег или платные сервисы или методы подключения к Whatsapp устарели.

Поэтому начал искать решение в тех языках программирования, в которых разбираюсь. 

Вышел на решение whatsapp-web.js (https://www.npmjs.com/package/whatsapp-web.js/v/1.16.4-alpha.0)

Для того, чтобы воспользоватся npm, нужно установить node.js (https://nodejs.org/en/)

Node.js нужно будет установить на всех компьютерах пользователей, которые будут работать с рассылкой (или терминальном сервере).

Далее скачиваю пакет в папку на компьютере

Для этого нужно

  • Открываем cmd 
  • Проверяем, что node.js установлен: node -v
  • Открываем пустую папку в которой и будет наш проект к примеру (D:\Whatsapp)

Набираем команду: npm init (На все вопросы жмем интер)

 

 

 

  • Устанавливаем пакет whatsapp-web.js

npm i whatsapp-web.js

 

 

 

 

  • Создаем в папке файл index.js

 

 

 

  • В файл нужно добавить логику рассылки, к примеру, как в примере на страничке npm whatsapp-web.js
 

 

const { Client,LocalAuth } = require('whatsapp-web.js');

const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
});

client.initialize();

 

 

  • запускаем проект 

node index.js

 

 

 

  • после запуска должна вылезти форма авторизации в Whatsapp 

 

 

 

 

На телефоне открываем Whatsapp (Связанные устройства) и сканируем q-code для авторизации.

 

 

 

 

Пошлем на этот номер команду !ping, то бот нам ответит pong

 

 

 

На этом задача минимум решена. 

У нас запущен бот, который отвечает на сообщения. Мы влияем из файла index.js, что будет отправлено в Whatsapp. 

 

Начинаем решать основную задачу.

Мне рассылку из 1с нужно  делать не с левого номера (бота), а с номера менеджера, чтобы контрагенты не видели разницы между рассылкой и обычными сообщениями менеджера и контрагенты могли отвечать на сообщения.

1. В 1с нужно создать справочник номераWhatsapp или регистр сведений  (измерение контрагент, ресурс номерWhatsapp). или добавить реквизит номерWhatsapp в справочник контрагентов. 

У меня это Справочник "предопределенные константы", в которой есть табличная часть с двумя реквизитами.

2. Рассылку из 1с будут запускать на терминальном сервере все содержимое папки Whatsapp поместим на терминальный сервер в папку (C:\Program Files (x86)\Whatsapp\)

3. Установим node.js на терминальном сервере

 

Создал в 1с обработку 

(Кнопки добавить и записать служат для добавления новых контрагентов с номером)

 

 

 

 

Обработка генерирует строку !комадна для бота и Json.

  • команда !senddebit
  • json массив массивов (номер Whatsapp и сумма):
 

 

[
[79951231212,4445630.5],
[79041231212,-57113968],
[79771231212,-5322.81]
]

 

После нажатия кнопки "Отправить в Whatsapp":

1. Формируются данные для отправки

2. Строка с данными автоматически копируется в буфер обмена

3. Всплывает окно авторизации в Whatsapp (авторизоваться должен пользователь от чего номера будет рассылка).

4. После авторизации пользователь должен вставить текст из буфера обмена в сообщение любому номеру (желательно второму своему, потому что это сообщение мы и будем ловить, обрабатывать и рассылать)

 

Но для того, чтобы index.js обработал новую команду !senddebit, нужно его доработать. 

На этот раз ловим сообщение, которое отправили мы сами (без разницы кому) и которое начинается на !senddebit

Вместо события client.on('message', буду использовать событие client.on('message_create' которое ловит все сообщения, в том числе, которые мы создали сами.

 

 

client.on('message_create', async msg => {
    if (msg.fromMe) {
		if (msg.body.startsWith('!senddebit ')) {
            const messagesJson = msg.body.replace('!senddebit ','')
            const arrMessages = JSON.parse(messagesJson)
            if (Array.isArray(arrMessages)) {
                arrMessages.forEach(async n_m=>{
                    let number = n_m[0]+'';
                    let sum = n_m[1];
                    number = number.includes('@c.us') ? number : `${number}@c.us`;
                    if (number.length==16 && sum!='') {
                        let type = 'задолженность'
                        if (Number(sum)<0) {
                            type = 'предоплата'
                            sum = sum *-1
                        }
                        let message = 
`Добрый день!
Ваша ${type} составляет ${sum}`
                        let chat = await msg.getChat();
                        chat.sendSeen();
                        client.sendMessage(number, message);
                    }
                })
            }
        }
    } 
});

 

В итоге контрагенту приходит сообщение

 

 

 

Если вам понравилась статья, поставьте плюсик, мне будет приятно)

 

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.13.209)

Платформа 1С:Предприятие 8.3 (8.3.19.1467)

Whatsapp ватсап whatsapp-web node npm

См. также

Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    9483    58    12    

34

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38198    108    161    

201

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    65564    312    272    

369

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30270    35    49    

71

Мессенджеры и боты Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Данное расширение представляет собой интерфейс взаимодействия 1С с сервисом Wazzup. Данный сервис позволяет вести беседу с использованием номера телефона, привязанного к Whatsapp. Почитать о сервисе и его условиях использования можно по ссылке https://wazzup24.com/. На данный момент расширение поддерживает почти все доступные через API функции. Обновление от 19.05.2023, версия 2.1!

14400 руб.

30.11.2020    13594    8    13    

15

Мессенджеры и боты SMS рассылки Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Решение реализовано в виде расширения. Заменяет отправку смс на отправку в WhatsApp через Green-api. Отправка чека картинкой.

7800 руб.

15.05.2024    1544    3    6    

6
Отзывы
39. Alexez 75 14.06.22 13:06 Сейчас в теме
Круто я реализовал отправку через post json {"phone": "11111111", "body": "WhatsApp API работает"}

const { Client,LocalAuth } = require('whatsapp-web.js');
const http = require('http');


const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
      
});


const requestListener = function (req, res) {
  if (req.method == 'POST') {
    
    var body_text = ''
    var number = ''
    req.on('data', function(data) {
        body_text += data
        console.log(body_text)
        const obj = JSON.parse(body_text)
        console.log(obj.phone);
        console.log(obj.body);
        number = obj.phone
        number = number.includes('@c.us') ? number : `${number}@c.us`;
        client.sendMessage(number, obj.body);
    })

    req.on('end', function() {
    res.writeHead(200, {'Content-Type': 'text/html'})
    res.end('ok')
  })


  } else {
    console.log(req.method);
    res.writeHead(200);
    res.end('Hello, World!');
  }

}

const server = http.createServer(requestListener);
server.listen(8080);

client.initialize();
Показать
user1671936; mihuilka; John_d; +3 Ответить
54. John_d 5891 09.04.24 09:47 Сейчас в теме
(52) Добрый день, Дело не в node.js, а в последней версии whatsapp-web.js возможно она бета
удалите пакет
npm uninstall whatsapp-web.js
и установите эту версию
npm i whatsapp-web.js@1.16.4-alpha.0
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 264 08.06.22 12:21 Сейчас в теме
Думал, что Вацап в отличие от Телеги и Вайбера, вообще не дают бесплатный интерфейс для подобных вещей.
2. dima1c 46 08.06.22 12:48 Сейчас в теме
(1) так они и не дают, это хак посредством работы через веб форму. по идее если они переделают веб формы то всё слететь может.
adhocprog; CyberCerber; +2 Ответить
16. nomadon 369 08.06.22 16:25 Сейчас в теме
(2) кроме того что не дают, лицензионным соглашением запрещают такие действия
19. Apolonov-Erik 51 08.06.22 21:23 Сейчас в теме
(2)а мне все равно понравилось решение, а так с Вами согласен, как веб морду переделают все перестанет работать
30. John_d 5891 09.06.22 09:16 Сейчас в теме
(19) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
3. frkbvfnjh 805 08.06.22 13:13 Сейчас в теме
Слишком сложно, оно того не стоит, легче заставить пользоваться телегой
ixijixi; 7OH; simuljakr; kbulygin; progersan; remix950; markers; vano-ekt; CagoBHuK; maksa2005; +10 3 Ответить
4. John_d 5891 08.06.22 13:18 Сейчас в теме
(3) Но контрагентов не заставишь перейти на телеграм. До этого менеджер 200 сообщений вручную набивала скопирует цифру из ексель вставит в ватсап.
nikolasx; JetBrain; ivanov660; +3 Ответить
7. ivanov660 4577 08.06.22 14:55 Сейчас в теме
(3) Бизнес ставит задачи и платит за это деньги.
nikolasx; +1 Ответить
8. vano-ekt 124 08.06.22 15:14 Сейчас в теме
(4) скажите, что пользуясь сабжем, они взаимодействуют с экстремистами, и на них уже пристально смотрят кое-откуда
21 марта 2022 года Тверской суд Москвы признал Meta экстремистской организацией в России
ixijixi; kbulygin; starik-2005; Apolonov-Erik; +4 Ответить
20. unknown181538 158 08.06.22 23:09 Сейчас в теме
(3) Насколько я понял, через телегу рассылку можно делать, только если контрагент подписан на специального бота.
Что не удобно для рассылки по контрагентам.
Я пришел к выводу, что телега подходит только для внутренних рассылок.
Или я ошибаюсь?
25. frkbvfnjh 805 09.06.22 07:40 Сейчас в теме
(20) Ну у нас наверное более скромные клиенты - мы просто говорим, что для рассылки нужно установить телеграм и создаем группу с ботом и добавляем всех кому нужна рассылка. Никто ни разу даже не спросил почему Телеграмм, или что они хотят получать рассылку только в вайбере. Просто - если нужна рассылка ставьте телеграмм, и проблем пока что не было.
31. John_d 5891 09.06.22 09:18 Сейчас в теме
(20) Все так и есть. Для внутренней рассылки используем телеграм бота.
5. ivanov660 4577 08.06.22 13:18 Сейчас в теме
В версии 8.3.23 уже реализована поддержка, возможно через 8-10 месяцев можно будет пощупать типовую реализацию.
mkostya; quazare; +2 Ответить
10. John_d 5891 08.06.22 15:22 Сейчас в теме
(5) чего поддержка реализована?
11. reset2 17 08.06.22 15:46 Сейчас в теме
(10) https://wonderland.v8.1c.ru/blog/plan-zadach-na-versiyu-8-3-23-platformy-1s-predpriyatie/

Поддержка интеграции с WhatsApp Запланирована

Но это было до....
21 марта 2022 года Тверской суд Москвы признал Meta экстремистской организацией в России
15. nomadon 369 08.06.22 16:19 Сейчас в теме
(11) т.к. нет API для обычного мессенджера, логично предположить, что будет для бизнес-аккаунта
18. Apolonov-Erik 51 08.06.22 21:14 Сейчас в теме
(5) да да, только платить придется в 1с )))
6. quazare 3800 08.06.22 14:44 Сейчас в теме
вопрос риторический - сколько просуществует ватсапп в России? 1-2 года?

и, мне кажется, он морально устарел и функционально недостаточен уже.....
7OH; KilloN; Apolonov-Erik; Fox-trot; +4 Ответить
9. John_d 5891 08.06.22 15:21 Сейчас в теме
(3) Кстати про телеграм. Такую задачу в телеграмме не так то просто решить. Бот в телеграме не умеет слать личные сообщения пользователям (даже если мы бы знали их id). Бот в телеграме умеет слать сообщения в группы и каналы, т.е. надо создать 200 групп по группе на контрагента и слать ботом уже в эту группу сообщение (как-то не очень красиво)
AlexandrSmith; unknown181538; +2 Ответить
12. ra9000 11 08.06.22 15:54 Сейчас в теме
(9) Я написал обработку для отправки ботом - личных сообщений, В 1с-ке привязал id клиента в этом боте, и шлю сообщения.
Решение заняло 2 дня, причем все реализовано на 7.7
darshi; user663418; KilloN; quazare; +4 Ответить
21. unknown181538 158 08.06.22 23:11 Сейчас в теме
(12) Ну это нужно не телефон клиента, а ID, что достаточно неудобно.
Я делал для внутренней рассылки через бота - сотрудник подписывается на бота, и после этого сообщения получает уже в личку.
14. nomadon 369 08.06.22 16:18 Сейчас в теме
(9) можно не просто бота запускать, а юзер бота. Но это, как и в whatsapp`e, пока не достигнешь лимита новых пользователей = бан.
24. KOTzilla 22 09.06.22 05:10 Сейчас в теме
(9)
Бот в телеграме не умеет слать личные сообщения пользователям

Личные сообщения бот слать может, если мне не изменяет память, бот не может инициировать начало беседы. Т.е. пользователь должен начать беседу первым, тем самым подтверждая, что этот бот, для него(пользователя), желанный собеседник=) как бы защита от спама, я это так понимаю.
36. Sergey_Borisovi4 95 09.06.22 12:26 Сейчас в теме
(9) Есть библиотека Telethon - позволяет слать сообщения от имени пользователя, а не бота. Типа альтернативное api.
13. nomadon 369 08.06.22 16:16 Сейчас в теме
Делал на этой библиотеке импорт сообщений менеджеров по расписанию в 1с (текст, картинки, звук). Просмотр истории в отчете с открытием картинок.
Все крутится на сервере в фоновом задании по расписанию, авторизация каждого пользователя индувидуальна, в окне 1с рисуется QR для сканирования.
Располагая на серверной части можно централизовано обновлять библиотеку (потому что она обновляется и иногда без обновлений просто не работает - в интерфейсе 1с жмакая кнопку обновить) и не требует доступов и административных установок на терминале/клиенте, работает в вэб-клиенте.
17. krasnodar-it 08.06.22 19:13 Сейчас в теме
Делал аналогичный проект пару лет назад, работает и посей день, менеджерам особо нравится кнопка в печатных формах "Отправить мне" далее уже самостоятельно взаимодействуют с клиентом пересылая файл им
22. CheBurator 2712 09.06.22 02:11 Сейчас в теме
"Всплывает окно авторизации в Whatsapp (авторизоваться должен пользователь от чего номера будет рассылка)."
не понял, автоматом все-таки рассылка делается или нужны какие-то интерактивнеы действия пользователя (нажатие на кнопку "разослать" таковым не считаем, можем ив фоне по расписанию...)?
28. John_d 5891 09.06.22 09:10 Сейчас в теме
(22) у меня все в клиенте происходит.
Для автоматической рассылки нужно будет где-то держать запущенный бот в клиенте. Этому боту скидывать сообщения для рассылки и он будет их рассылать, но тогда рассылка будет идти с левого номера (бота).
23. lihomanov 83 09.06.22 03:14 Сейчас в теме
Доброго времени суток!
Подскажите пожалуйста как отправить файл ?
26. apic 13 09.06.22 07:44 Сейчас в теме
Меня больше интересует, почему ввиду санкций ватсапп до сих пор работает на территории РФ? Так то надо было запретить, как ни как запрещенная организация работающая гос. деп. омерики.
27. Мастер1С 781 09.06.22 08:46 Сейчас в теме
Какие-то изменения у ватсап, буквально вчера. Как бы не отвалилась ваша доработка.
29. John_d 5891 09.06.22 09:15 Сейчас в теме
(27) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
32. AlexandrSmith 69 09.06.22 10:08 Сейчас в теме
Очень понравилось решение.
33. ManyakRus 489 09.06.22 10:22 Сейчас в теме
я сделал то же самое на языке golang - получился .exe один исполняемый файл, который может быть сервером-прослойкой для 1С. Так ещё лучше :-)
35. user662573_rx-tx 09.06.22 11:27 Сейчас в теме
Решение имеет место быть. В конце концов это решение конкретной задачи автора, и она встречается частенько.
Спасибо за труд!)
37. Светлый ум 415 10.06.22 05:41 Сейчас в теме
38. Serega-artem 17 10.06.22 13:37 Сейчас в теме
Очень любопытная тема! Плотно работаем с вотсапом, но сейчас через посредника, неофициальное api. Деньги небольшие, тут проблем нет, но качество услуги сильно через... Будем смотреть ваше решение, спасибо за инструкции.
nikolasx; John_d; +2 Ответить
39. Alexez 75 14.06.22 13:06 Сейчас в теме
Круто я реализовал отправку через post json {"phone": "11111111", "body": "WhatsApp API работает"}

const { Client,LocalAuth } = require('whatsapp-web.js');
const http = require('http');


const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
      
});


const requestListener = function (req, res) {
  if (req.method == 'POST') {
    
    var body_text = ''
    var number = ''
    req.on('data', function(data) {
        body_text += data
        console.log(body_text)
        const obj = JSON.parse(body_text)
        console.log(obj.phone);
        console.log(obj.body);
        number = obj.phone
        number = number.includes('@c.us') ? number : `${number}@c.us`;
        client.sendMessage(number, obj.body);
    })

    req.on('end', function() {
    res.writeHead(200, {'Content-Type': 'text/html'})
    res.end('ok')
  })


  } else {
    console.log(req.method);
    res.writeHead(200);
    res.end('Hello, World!');
  }

}

const server = http.createServer(requestListener);
server.listen(8080);

client.initialize();
Показать
user1671936; mihuilka; John_d; +3 Ответить
40. John_d 5891 15.06.22 09:40 Сейчас в теме
48. user-sergey 48 13.05.23 12:21 Сейчас в теме
(39) Здравствуйте. можете поделится кодом. Вы отправляете из 1С сообщения? Я так понял у автора для рассылки необходимо вручную отправить сообщение себе, тогда бот отлавливает и делает рассылку. У меня чуть другая задача. Надо чтоб 1С сама отправляла, по времени, без участия человека. Так можно сделать?
41. UPKA 17.06.22 11:44 Сейчас в теме
Подскажите, каждый раз перед отправкой нужно сканировать QR? А если допустим мне необходимо в фоне отправлять сообщения? Как быть? Предположим имеется один номер телефона на все рассылки.
42. John_d 5891 17.06.22 13:04 Сейчас в теме
(41) Можно один раз отсканировать и больше не закрывать бота, так и держать открытым (делать это надо на отдельном компьютере). Этому боту скидывать сообщения для рассылки и он будет их рассылать
43. UPKA 17.06.22 13:12 Сейчас в теме
(42)Подскажите, а на этом же ПК нельзя запускать скрипт?
44. John_d 5891 17.06.22 13:20 Сейчас в теме
(43)Можно. Просто тогда не закрывайте этот скрипт.
45. skp2000 20.04.23 08:12 Сейчас в теме
Автор, приветствую. Немного не понял про автоматизацию. Получается пользователь для рассылки нужных данных должен всегда ручками в вэб-ватсапп вставлять сформированную в 1С строку "!senddebit [[***,***],...,[***,***]]" ? А можно как-то нажатием кнопки в 1С сделать и формирование строки и одновременную вставку в вэб-ватсапп, чтобы без лишних телодвижений рассылка уходила по клиентам?
46. John_d 5891 20.04.23 09:07 Сейчас в теме
(45) Можно. Пример этого написан в комментарии 39. Там на NodeJS поднимается веб сервер на порту 8080. И на этот веб-сервер можно отправлять из 1с пост запрос.
47. skp2000 20.04.23 09:59 Сейчас в теме
49. Irene999 10.12.23 23:06 Сейчас в теме
(46) Доброго времени суток. Подскажите каким образом из 1С отправить пост запрос к локальному скрипту index.js?
50. John_d 5891 11.12.23 09:27 Сейчас в теме
(49) Посмотри в 39 комментарии. Там в скрипте поднимается веб-сервер с адресом localhost:8080. К этому адресу из 1с нужно отправлять post запрос
51. Kireno 05.02.24 13:51 Сейчас в теме
Добрый день! Все еще работает?)
52. user-sergey 48 07.04.24 11:20 Сейчас в теме
Здравствуйте. Вы не проверяли на новой версии node.js, у меня вот такая ошибка

C:\WA>node index.js
C:\WA\node_modules\whatsapp-web.js\src\webCache\LocalWebCache.js:34
const version = indexHtml.match(/manifest-([\d\\.]+)\.json/)[1];
^

TypeError: Cannot read properties of null (reading '1')
at LocalWebCache.persist (C:\WA\node_modules\whatsapp-web.js\src\webCache\LocalWebCache.js:34:69)
at C:\WA\node_modules\whatsapp-web.js\src\Client.js:744:36
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.12.1
53. пользователь 09.04.24 09:43
Сообщение было скрыто модератором.
...
54. John_d 5891 09.04.24 09:47 Сейчас в теме
(52) Добрый день, Дело не в node.js, а в последней версии whatsapp-web.js возможно она бета
удалите пакет
npm uninstall whatsapp-web.js
и установите эту версию
npm i whatsapp-web.js@1.16.4-alpha.0
62. user-sergey 48 21.04.24 08:43 Сейчас в теме
(54)
npm uninstall whatsapp-web.js

взлетело, но не работает пинг понг
64. John_d 5891 23.04.24 09:27 Сейчас в теме
(62) прочтите комментарии (59) и (60) может поможет
56. Kastello 17.04.24 10:47 Сейчас в теме
(52) Салам, братиш! Мне полегчало от " const version = '2.24.7.72';"
63. user-sergey 48 21.04.24 08:44 Сейчас в теме
(56) теперь при сканировании QR кода ошибка
55. Kastello 17.04.24 10:37 Сейчас в теме
>>Пошлем на этот номер команду !ping, то бот нам ответит pong
На какой "этот" номер? Открывается просто клиентос WA.
57. John_d 5891 17.04.24 11:05 Сейчас в теме
(55) на номер которым сканируете q-code
58. Kastello 17.04.24 15:53 Сейчас в теме
(57) Т.е. слать нужно из 1цэ? А что конкретно слать и как - скрыто в обработочке за 2 стартмани, я правильно всё понял?
59. John_d 5891 17.04.24 16:04 Сейчас в теме
(58) нет. Шлете с другого WA на WA, которым сканируете q-code
Kastello; +1 Ответить
60. Kastello 18.04.24 09:49 Сейчас в теме
(59) Да, взлетело, спасибо! Но только с другого номера, со своего на свой не ловит. А вот ещё вопрос: для (39) Вы бы какие Заголовки и Точку входа использовали?
61. Kastello 18.04.24 16:53 Сейчас в теме
(39) И так тоже взлетело, для тех у кого козлит: Заголовки "не нужны", Точка входа просто корень "/", номера телефонов без плюсов!
65. aleksey2 88 24.05.24 13:02 Сейчас в теме
У кого-нибудь есть виртуалбокс этой штукой? Я не знаю надо сколько времени изучать node
66. user-sergey 48 17.06.24 12:16 Сейчас в теме
Здравствуйте. Не получается "pong" увидеть в ответ на "!ping". Пробовал на двух разных компьютерах все установить.

При установке вот такое сообщение



c:\WhatsApp>npm i whatsapp-web.js@1.16.4-alpha.0
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated puppeteer@13.7.0: < 22.6.4 is no longer supported

added 69 packages, and audited 70 packages in 1m

8 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities


А после закрытия клиента WA вот так


c:\WhatsApp>node index.js
c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\Co­nnection.js:230
error: new Errors_js_1.ProtocolError(),
^

ProtocolError: Protocol error (Runtime.callFunctionOn): Target closed.
at c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\Co­nnection.js:230:24
at new Promise (<anonymous>)
at CDPSession.send (c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\Co­nnection.js:226:16)
at ExecutionContext._evaluateInternal (c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\Ex­ecutionContext.js:204:50)
at ExecutionContext.evaluateHandle (c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\Ex­ecutionContext.js:155:21)
at WaitTask.rerun (c:\WhatsApp\node_modules\puppeteer\lib\cjs\puppeteer\common\DO­MWorld.js:551:37)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
originalMessage: ''
}

ничего не понимаю, помогите плиз.
67. Irene999 26.09.24 23:47 Сейчас в теме
Добрый день!
После переустановки ОС все делаю как и раньше, но при передачи POST запроса теперь бот выдает ошибку:
D:\Whatsapp\node_modules\puppeteer\lib\cjs\puppeteer\common\Ex­ecutionContext.js:221
throw new Error('Evaluation failed: ' + helper_js_1.helper.getExceptionMessage(exceptionDetails));
^

Error: Evaluation failed: TypeError: Cannot read properties of undefined (reading 'WidFactory')
at __puppeteer_evaluation_script__:2:42
at ExecutionContext._evaluateInternal (D:\Whatsapp\node_modules\puppeteer\lib\cjs\puppeteer\common\Ex­ecutionContext.js:221:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async ExecutionContext.evaluate (D:\Whatsapp\node_modules\puppeteer\lib\cjs\puppeteer\common\Ex­ecutionContext.js:110:16)
at async Client.sendMessage (D:\Whatsapp\node_modules\whatsapp-web.js\src\Client.js:594:28)

Node.js v20.17.0

Подскажите куда рыть, ума не приложу
68. John_d 5891 27.09.24 09:11 Сейчас в теме
(67) Добрый день,
удалите пакет
npm uninstall whatsapp-web.js
и установите эту версию
npm i whatsapp-web.js@1.16.4-alpha.0
69. Irene999 30.09.24 22:43 Сейчас в теме
Добрый день. Не помогла переустановка. Прикрепляю свой index.js с прослушкой по порту 8080. Посмотрите пожалуйста может дело в нем. Раньше то работало как часы. Ошибку выдает при отправке запроса, причем текст сообщения выводится, но тут же вываливается
Прикрепленные файлы:
Index.js
70. user-sergey 48 09.11.24 14:19 Сейчас в теме
Здравствуйте. Подскажите, как можно проверить сервис запущен или нет. Надо index.js дописать, чтоб возвращал 200 при каком то запросе например. Но как это сделать, может кто знает? Подскажите пожалуйста.
71. John_d 5891 11.11.24 09:45 Сейчас в теме
(70) Добрый день,
const requestListener = function (req, res) {

res.writeHead(200);
res.end('ok');

}

const server = http.createServer(requestListener);
server.listen(8080);
user-sergey; +1 Ответить
72. user-sergey 48 11.11.24 13:15 Сейчас в теме
благодарю, буду проверять
Оставьте свое сообщение