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

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

Перейти к публикации

mihuilka; +1 Ответить
Отзывы
39. Alexez 76 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 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 211 08.06.22 12:21 Сейчас в теме
Думал, что Вацап в отличие от Телеги и Вайбера, вообще не дают бесплатный интерфейс для подобных вещей.
2. dima1c 36 08.06.22 12:48 Сейчас в теме
(1) так они и не дают, это хак посредством работы через веб форму. по идее если они переделают веб формы то всё слететь может.
adhocprog; CyberCerber; +2 Ответить
16. nomadon 358 08.06.22 16:25 Сейчас в теме
(2) кроме того что не дают, лицензионным соглашением запрещают такие действия
19. Apolonov-Erik 37 08.06.22 21:23 Сейчас в теме
(2)а мне все равно понравилось решение, а так с Вами согласен, как веб морду переделают все перестанет работать
30. John_d 4394 09.06.22 09:16 Сейчас в теме
(19) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
3. frkbvfnjh 719 08.06.22 13:13 Сейчас в теме
Слишком сложно, оно того не стоит, легче заставить пользоваться телегой
simuljakr; kbulygin; progersan; remix950; markers; vano-ekt; CagoBHuK; maksa2005; +8 3 Ответить
4. John_d 4394 08.06.22 13:18 Сейчас в теме
(3) Но контрагентов не заставишь перейти на телеграм. До этого менеджер 200 сообщений вручную набивала скопирует цифру из ексель вставит в ватсап.
nikolasx; JetBrain; ivanov660; +3 Ответить
7. ivanov660 3765 08.06.22 14:55 Сейчас в теме
(3) Бизнес ставит задачи и платит за это деньги.
nikolasx; +1 Ответить
8. vano-ekt 122 08.06.22 15:14 Сейчас в теме
(4) скажите, что пользуясь сабжем, они взаимодействуют с экстремистами, и на них уже пристально смотрят кое-откуда
21 марта 2022 года Тверской суд Москвы признал Meta экстремистской организацией в России
ixijixi; kbulygin; starik-2005; Apolonov-Erik; +4 Ответить
20. unknown181538 111 08.06.22 23:09 Сейчас в теме
(3) Насколько я понял, через телегу рассылку можно делать, только если контрагент подписан на специального бота.
Что не удобно для рассылки по контрагентам.
Я пришел к выводу, что телега подходит только для внутренних рассылок.
Или я ошибаюсь?
25. frkbvfnjh 719 09.06.22 07:40 Сейчас в теме
(20) Ну у нас наверное более скромные клиенты - мы просто говорим, что для рассылки нужно установить телеграм и создаем группу с ботом и добавляем всех кому нужна рассылка. Никто ни разу даже не спросил почему Телеграмм, или что они хотят получать рассылку только в вайбере. Просто - если нужна рассылка ставьте телеграмм, и проблем пока что не было.
31. John_d 4394 09.06.22 09:18 Сейчас в теме
(20) Все так и есть. Для внутренней рассылки используем телеграм бота.
5. ivanov660 3765 08.06.22 13:18 Сейчас в теме
В версии 8.3.23 уже реализована поддержка, возможно через 8-10 месяцев можно будет пощупать типовую реализацию.
mkostya; quazare; +2 Ответить
10. John_d 4394 08.06.22 15:22 Сейчас в теме
(5) чего поддержка реализована?
11. reset2 15 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 358 08.06.22 16:19 Сейчас в теме
(11) т.к. нет API для обычного мессенджера, логично предположить, что будет для бизнес-аккаунта
18. Apolonov-Erik 37 08.06.22 21:14 Сейчас в теме
(5) да да, только платить придется в 1с )))
6. quazare 2985 08.06.22 14:44 Сейчас в теме
вопрос риторический - сколько просуществует ватсапп в России? 1-2 года?

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

Личные сообщения бот слать может, если мне не изменяет память, бот не может инициировать начало беседы. Т.е. пользователь должен начать беседу первым, тем самым подтверждая, что этот бот, для него(пользователя), желанный собеседник=) как бы защита от спама, я это так понимаю.
36. Sergey_Borisovi4 93 09.06.22 12:26 Сейчас в теме
(9) Есть библиотека Telethon - позволяет слать сообщения от имени пользователя, а не бота. Типа альтернативное api.
13. nomadon 358 08.06.22 16:16 Сейчас в теме
Делал на этой библиотеке импорт сообщений менеджеров по расписанию в 1с (текст, картинки, звук). Просмотр истории в отчете с открытием картинок.
Все крутится на сервере в фоновом задании по расписанию, авторизация каждого пользователя индувидуальна, в окне 1с рисуется QR для сканирования.
Располагая на серверной части можно централизовано обновлять библиотеку (потому что она обновляется и иногда без обновлений просто не работает - в интерфейсе 1с жмакая кнопку обновить) и не требует доступов и административных установок на терминале/клиенте, работает в вэб-клиенте.
17. krasnodar-it 08.06.22 19:13 Сейчас в теме
Делал аналогичный проект пару лет назад, работает и посей день, менеджерам особо нравится кнопка в печатных формах "Отправить мне" далее уже самостоятельно взаимодействуют с клиентом пересылая файл им
22. CheBurator 3110 09.06.22 02:11 Сейчас в теме
"Всплывает окно авторизации в Whatsapp (авторизоваться должен пользователь от чего номера будет рассылка)."
не понял, автоматом все-таки рассылка делается или нужны какие-то интерактивнеы действия пользователя (нажатие на кнопку "разослать" таковым не считаем, можем ив фоне по расписанию...)?
28. John_d 4394 09.06.22 09:10 Сейчас в теме
(22) у меня все в клиенте происходит.
Для автоматической рассылки нужно будет где-то держать запущенный бот в клиенте. Этому боту скидывать сообщения для рассылки и он будет их рассылать, но тогда рассылка будет идти с левого номера (бота).
23. lihomanov 83 09.06.22 03:14 Сейчас в теме
Доброго времени суток!
Подскажите пожалуйста как отправить файл ?
26. apic 12 09.06.22 07:44 Сейчас в теме
Меня больше интересует, почему ввиду санкций ватсапп до сих пор работает на территории РФ? Так то надо было запретить, как ни как запрещенная организация работающая гос. деп. омерики.
27. Мастер1С 776 09.06.22 08:46 Сейчас в теме
Какие-то изменения у ватсап, буквально вчера. Как бы не отвалилась ваша доработка.
29. John_d 4394 09.06.22 09:15 Сейчас в теме
(27) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
32. AlexandrSmith 72 09.06.22 10:08 Сейчас в теме
Очень понравилось решение.
33. ManyakRus 463 09.06.22 10:22 Сейчас в теме
я сделал то же самое на языке golang - получился .exe один исполняемый файл, который может быть сервером-прослойкой для 1С. Так ещё лучше :-)
35. user662573_rx-tx 09.06.22 11:27 Сейчас в теме
Решение имеет место быть. В конце концов это решение конкретной задачи автора, и она встречается частенько.
Спасибо за труд!)
37. Светлый ум 281 10.06.22 05:41 Сейчас в теме
38. Serega-artem 15 10.06.22 13:37 Сейчас в теме
Очень любопытная тема! Плотно работаем с вотсапом, но сейчас через посредника, неофициальное api. Деньги небольшие, тут проблем нет, но качество услуги сильно через... Будем смотреть ваше решение, спасибо за инструкции.
nikolasx; John_d; +2 Ответить
39. Alexez 76 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 4394 15.06.22 09:40 Сейчас в теме
41. UPKA 17.06.22 11:44 Сейчас в теме
Подскажите, каждый раз перед отправкой нужно сканировать QR? А если допустим мне необходимо в фоне отправлять сообщения? Как быть? Предположим имеется один номер телефона на все рассылки.
42. John_d 4394 17.06.22 13:04 Сейчас в теме
(41) Можно один раз отсканировать и больше не закрывать бота, так и держать открытым (делать это надо на отдельном компьютере). Этому боту скидывать сообщения для рассылки и он будет их рассылать
43. UPKA 17.06.22 13:12 Сейчас в теме
(42)Подскажите, а на этом же ПК нельзя запускать скрипт?
44. John_d 4394 17.06.22 13:20 Сейчас в теме
(43)Можно. Просто тогда не закрывайте этот скрипт.
Оставьте свое сообщение
Вакансии
Программист
Москва
зарплата от 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день

Системный архитектор
Москва
зарплата от 150 000 руб.
Полный день