WhatsApp и 1С

24.09.14

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

Однажды ночью, в паре тысяч километров от дома, я вспомнил, как, будучи ещё подростком, любил писать различных ботов.
Первый бот в моей практике был irc-ботом, второй умел отправлять смс, всё это привело к логичному завершению цепочки - их общему ребёнку, который висел в irc и по команде мог слать смс (бесплатно, без регистрации, -без смс-).
Сейчас на предприятии, где я работаю, применяется практика рассылки смс нужным людям при превышении определённой температуры в серверной.

"А почему бы мне не прикрутить оповещалку на 1С, которая будет отчитываться о выполнении регламентных процедур?" подумал я не имея на то необходимости ))

Решил посмотреть какие есть варианты и выиграл это сравнение WhatsApp:
- В WhatsApp можно создать группу нужных людей, в которой бот может сообщить о том, что что-то пошло не так, в этой же группе нужные люди могут скоординироваться по этому вопросу;
- СМС слишком коротки и выходят дороже, к тому же в нашем городе это нестабильный канал связи;

Скачать файлы

Наименование Файл Версия Размер
Проект на c# с базовой доработкой до COM функционала
.rar 246,28Kb
183
.rar 246,28Kb 183 Скачать
Внешняя обработка + DLL для демонстрации работы примера
.rar 56,85Kb
361
.rar 56,85Kb 361 Скачать
Внешняя обработка без DLL
.epf 13,77Kb
79
.epf 13,77Kb 79 Скачать

Отмазка #1
Эта публикация - не готовое решение, а лишь небольшой пример, иллюстрирующий расширение возможностей 1С и преимущества знания других языков программирования.

Отмазка #2
Код примеров приведён в минимально рабочее состояние. Ровно настолько, чтобы продемонстрировать саму возможность рассылки сообщений по WhatsApp из 1С.
В нём есть участки, в которых сознательно оставлена возможность для некорректной работы (отсутствие проверок, отсутствие перехвата исключений и т.д.).
Так же реализована очень малая часть потенциала API - только отправка текстовых сообщений.
Мотивирую это тем, что не хочу давать готовый инструмент в руки спамеров.

 

Предисловие

 

Если попытаться поискать официальный API WhatsApp, то можно узнать, что его не существует.
Однако задав в поиске "WhatsApp" на github можно найти 421 (в день написания публикации) проект на различных языках.

Я решил остановиться на проекте WhatsAPINet (https://github.com/perezdidac/WhatsAPINet). Этот проект содержит в себе API и демонстрацию его применения.

Казалось бы - как можно связать DLL на .Net с 1С?
Можно сделать внешнюю компоненту и использовать в своей конфигурации - мы этого делать не будем, потому что написание внешней компоненты всё-таки сложнее, чем переделка проекта под COM-объект, не будем усложнять наш пример.
Можно переделать проект так, чтобы на выходе DLL поставляла помимо экспортных методов ещё и COM-объект, который можно применять не только в 1С, но и в других отраслях (vbs-скрипты и прочее).

Скачав проект с github можно неприятно удивиться - тестовые примеры не будут работать.
Сервер Whatsapp будет ругаться на несоответствие версий, неправильный токен авторизации и так далее.
Это связано с тем, что какие-то участки протокола могут измениться в новой версии WhatsApp, а проект на github уже давненько не обновлялся.


Пилим COM-объект на C#


Где и что конкретно нужно исправить в проекте, чтобы заработали тестовые примеры я подробно расписывать не буду (смотри отмазку #2), скажу только, что нужно поправить 2 строки - версию и один из ключей, который берётся для генерации токена.
На момент публикации статьи этих исправлений будет достаточно, чтобы сервер WhatsApp был согласен с нами сотрудничать.

Далее, чтобы не таскать с собой 2 DLL-ки (API + COM-обёртка), мы изменим проект в VisualStudio таким образом, чтобы открыть нужный функционал в виде COM-объекта, поставляемого этой же DLL с API:

Готовых статей о том как написать COM-объект на .NET море, в том числе на инфостарте, поэтому не будем сильно останавливаться на этом вопросе
(например, Как написать COM-объект для 1С на Visual Studio C# 2008)

Итак, из трёх папок в скаченном проекте нас интересует папка WhatsAppApi - в неё содержится проект с реализацией API, остальные папки содержат примеры по работе с ним.

Открываем проект WhatsAppApi.csproj и далее по шагам:

1. Сделаем сборку видимой для COM:

Откроем файл AssemblyInfo.cs и изменим значение параметра сборки ComVisible на true

2. Добавим описание и реализацию интерфейсов

Добавим интерфейс IEvents. Он будет содержать описания событий, на которые мы сможем подписаться в 1С;



Добавим интерфейс IComWrapper. Он будет содержать описание методов, которые мы будем вызывать;


Добавим класс ComWrapper. Он будет наследовать IComWrapper, содержать реализацию его методов, а так же вызывать события.



3. Компилируем проект и регистрируем нашу сборку как COM

Средство регистрации сборки считывает метаданные сборки и добавляет в реестр необходимые записи, что позволяет COM-клиентам прозрачно создавать классы .NET Framework. После регистрации класса любой COM-клиент может использовать таким образом, словно это класс COM. Класс регистрируется только один раз, при установке сборки. Экземпляры классов внутри сборки не могут создаваться на основе COM-классов до их фактической регистрации.


Чтобы зарегистрировать нашу сборку, нужно выполнить следующий Код
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe WhatsAppApi.dll /codebase

Во вложениях есть допиленный проект со скромным функционалом (с учётом отмазки #2) и готовая скомпилированная DLL

 

Пилим обработку в 1С


Вот основная часть работы позади, нам осталось только прикрутить полученный COM-объект к 1С.

В исходном проекте многое завязано на событиях объекта, поэтому мы тоже не будем далеко уходить от этой практики.
Так как мы использовали интерфейс IEvent, основная часть вопросов будет решаться добавлением обработчиков событий COM-объекта.

 

Чтобы приступить к тестам, нам нужно зарегистрировать номер телефона в WhatsApp, получить пароль и авторизоваться. Но, перед этим, посмотрим, как мы будем работать с COM-объектом (сборка, на этом этапе, уже должна быть зарегистрирована):

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Вацап = Новый COMОбъект("WhatsAppApi.ComWrapper");
	ДобавитьОбработчик Вацап.onGetMessage, ПолученоСообщение;
КонецПроцедуры

...

&НаКлиенте
Процедура ПолученоСообщение(ОтНомера, Имя, Текст)
	НовоеСообщение = Сообщения.Добавить();
	НовоеСообщение.Дата = ТекущаяДата();
	НовоеСообщение.От = ОтНомера;
	НовоеСообщение.Кому = "Мне";
	НовоеСообщение.Текст = Текст;
	НовоеСообщение.Доставлено = Истина;
КонецПроцедуры


Механизм регистрации

Аккаунт WhatsApp привязывается к номеру телефона, поэтому при первичной регистрации без телефона не обойтись.
В общем виде процесс регистрации выглядит так:

1. Мы отправляем на сервер WhatsApp сообщение о том, что хотим зарегистрировать свой номер. При этом указываем способ получения кода подтверждения регистрации - звонок или смс. В нашем случае это будет смс.


 2. Сервер WhatsApp отправляет на указанный номер смс с кодом.

Тут нам пригодится телефон, смотрим, что за цифры пришли в смс сообщении.

3. Называем серверу полученные в смс цифры.

 


4. Сервер выдаёт нам пароль, который мы будем использовать для авторизации.



В коде 1С это выглядит приблизительно так:

&НаКлиенте
Процедура ПриОткрытии(Отказ)	
	Вацап = ЭтаФорма.ВладелецФормы.Вацап();
	ДобавитьОбработчик Вацап.onRecievePassword, ПриПолученииПароля;
КонецПроцедуры


&НаКлиенте
Процедура ЗапроситьСМС(Команда)	
	Вацап.Create(НомерТелефона, "", "");
	Если Вацап.RequestCode() Тогда
		Сообщить("Запрос отправлен, ожидайте СМС сообщение");
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьКод(Команда)
	Вацап.RegisterCode(КодСМС);
КонецПроцедуры

&НаКлиенте
Процедура ПриПолученииПароля(Строка)
	Предупреждение("Пароль получен!");
	Пароль = Строка;
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии()
	УдалитьОбработчик Вацап.onRecievePassword, ПриПолученииПароля;
КонецПроцедуры

Механизм уведомлений, рассылки и получения сообщений

Процесс обмена сообщениями выглядит так:

1. Отправитель отправляет на сервер сообщение для указанного получателя
2. Сервер, получив сообщение, отчитывается отправителю о том, что сообщение получено сервером
3. Когда получатель получает сообщение, сервер отчитывается отправителю, что сообщение доставлено получателю

Чтобы эта цепочка корректно работала, у каждого сообщения есть свой идентификатор.
В исходном проекте этот идентификатор дополнен другими данными и выглядит неудобно для обработки внутри 1С, поэтому в своём классе ComWrapper при событии получения клиентом сообщения мы удаляем "лишнее", оставляя только цифровой идентификатор сообщения.

В коде 1С наше общение будет выглядить так:

&НаКлиенте
Перем Вацап, МойНомерТелефона;

&НаКлиенте
Функция Вацап() Экспорт
	Если Вацап = Неопределено ИЛИ Вацап = null Тогда
		Вацап = Новый COMОбъект("WhatsAppApi.ComWrapper");
	КонецЕсли;
	Возврат Вацап;
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ФормаАвторизации = ПолучитьФорму("ВнешняяОбработка.ДемонстрацияWhatsApp.Форма.ФормаАвторизации", , ЭтаФорма);
	ФормаАвторизации.ОткрытьМодально();
	Если НЕ ФормаАвторизации.Авторизован Тогда
		МойНомерТелефона = ФормаАвторизации.НомерТелефона;
		Закрыть();
		Возврат;
	КонецЕсли;
	
	ДобавитьОбработчик Вацап.onError, ПриОшибке;
	ДобавитьОбработчик Вацап.onGetMessage, ПолученоСообщение;
	ДобавитьОбработчик Вацап.onClientRecieveMessage, Доставлено;
КонецПроцедуры

&НаКлиенте
Процедура ПолученоСообщение(ОтНомера, Имя, Текст)
	НовоеСообщение = Сообщения.Добавить();
	НовоеСообщение.Дата = ТекущаяДата();
	НовоеСообщение.От = ОтНомера;
	НовоеСообщение.Кому = "Мне";
	НовоеСообщение.Текст = Текст;
	НовоеСообщение.Доставлено = Истина;
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьСообщение(Команда)
	КлючСообщения = Вацап().SengMessage(Адресат, Сообщение);
	
	НовоеСообщение = Сообщения.Добавить();
	НовоеСообщение.Дата = ТекущаяДата();
	НовоеСообщение.От = "Я";
	НовоеСообщение.Кому = Адресат;
	НовоеСообщение.Текст = Сообщение;
	НовоеСообщение.КлючСообщения = КлючСообщения;
	
	Сообщение = "";
КонецПроцедуры

&НаКлиенте
Процедура Доставлено(Кому, КлючСообщения)
	Отбор = Новый Структура("Кому, КлючСообщения", Кому, КлючСообщения);
	НайденныеСтроки = Сообщения.НайтиСтроки(Отбор);
	
	Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
		НайденнаяСтрока.Доставлено = Истина;
	КонецЦикла;
КонецПроцедуры

На этом можно закончить, добавив, что допилив наш пример можно отправлять не только простые текстовые сообщения, но так же заставить бота отписываться в группах, кидать фотки с web-камеры по расписанию, записи с микрофона и вообще создать гаджет агента 007)

 

 

COM WhatsApp Уведомления

См. также

SALE! 25%

Конструктор ботов Телеграм, редакция 2

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

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

15000 11250 руб.

18.06.2021    58661    291    255    

345

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

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

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

13200 9900 руб.

27.12.2021    33272    80    157    

174

Легкий документооборот (+чат-бот для Telegram)

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

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

14900 руб.

15.11.2018    27782    25    48    

57

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    83610    40    191    

127

Интеграция 1С с телефонией и чатами WhatsApp и Telegram

Телефония, SIP Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Интеграция 1С с телефонией и чатами WhatsApp и Telegram автоматизирует работу оператора со звонками и чатами и добавит вашей 1С элементы CRM системы. Храните всю историю взаимоотношений в 1С, не теряйте звонки, скачивайте, прослушивайте в любое время из карточки клиента или журнала звонков, держите руку на пульсе, используя блок отчетов по звонкам. Интегрируйте вашу 1С и чатами WhatsApp и Telegram, общайтесь с клиентами с единого номера и в одном окне. Теперь чаты с клиентами хранятся в карточке партнера в 1С, а не в личных мобильных ваших менеджеров.

4100 руб.

28.04.2022    13851    11    6    

36

Отправка в Telegram отчетов, печатных форм, присоединённых файлов и произвольных вложений. Загрузка получателей. Хранение истории отправок.

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

Универсальное расширение для отправки (напрямую и через прокси) печатных форм, отчетов, присоединённых файлов, табличных документов и произвольных вложений в чат Telegram прямо из 1С. Ручная и автоматическая фоновая загрузка по расписанию идентификаторов получателей Telegram. Хранение истории отправок сообщений с ограничением по времени хранения и с автоматической очисткой по мере истечения срока хранения.

4800 руб.

26.12.2023    2199    1    0    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1679 24.09.14 16:21 Сейчас в теме
Ого! А я в своё время искал Windows-клиента... и не нашёл... видно, искал плохо )))
2. fullstack1c 35 24.09.14 21:24 Сейчас в теме
Огромный плюс. Отличная статья :)
Alef; iov; +2 Ответить
3. iov 406 24.09.14 22:42 Сейчас в теме
прикрутил к регламентным заданиям .
правда код сократил, да простит меня автор
Вацап = Null;
Вацап = Новый COMОбъект("WhatsAppApi.ComWrapper");
Вацап.Create("ЛОгин", "Пароль", "");
Вацап.Login();
КлючСообщения = Вацап.SengMessage("телефон", "Напиши мне напиши ");

теперь при ошибках получаю почти оперативно сообщение до 2 минут идет (((
5. delete 253 25.09.14 00:11 Сейчас в теме
(3) iov, 2 минуты - много, проверьте скорость соединения на телефоне, возможно не успевает нормально синхронизировать сообщения.
(4) KonstB, город Норильск. Представьте себе - смс нормально уходят, но прийти адресату могут через день-два
RustIG; Elisy; +2 Ответить
103. pavel06 2 22.08.19 10:16 Сейчас в теме
(5)
Представьте себе - смс нормально уходят, но прийти адресату могут через день-два


Секретность, должны быть проверены.
4. KonstB 180 24.09.14 23:32 Сейчас в теме
Автор молодец!

но так чисто из любопытства:

СМС... в нашем городе это нестабильный канал связи;


Это где такой город, где мобильный инет лучше смс ? )))
Goggy; VanDiesel1; +2 Ответить
6. saint07 107 25.09.14 01:26 Сейчас в теме
Идея очень интересная,а можно ли также под Viber что-нибудь сделать ???
7. delete 253 25.09.14 01:52 Сейчас в теме
(6) saint07, если найдёте API - беглый взгляд не выявил актуальной реализации в открытом доступе, ситуация такая же, как с whatsapp'ом - API закрытое
8. spezc 782 25.09.14 08:17 Сейчас в теме
Отличная статья!
Сколько будет стоить готовая рабочая обработка и ДЛЛ (чтобы работали без отмазок))))?
Чтобы я мог прикрутить к своей рабочей конфе?
10. delete 253 25.09.14 08:40 Сейчас в теме
(8) spezc, честно говоря даже не представляю, никогда таким образом не пытался зарабатывать. А ещё, хочу напомнить, что DLL останется рабочей ровно до того момента, как WhatsApp не поменяет версию или часть протокола. Никто не может гарантировать, что сделав полностью рабочую DLL ею можно будет пользоваться неограниченное время.

Потому лишний раз предупрежу - не стоит вешать эту оповещалку на что-то важное, она может неожиданно перестать работать.

У меня есть пара идей для следующей публикации подобной тематики, в которых участвует меньше неконтролируемых посредников)
Однако нужно сначала всесторонне изучить эти идеи
14. spezc 782 25.09.14 09:05 Сейчас в теме
(10) delete, может тогда все-таки стоит подумать над коммерческой частью проекта? сделать готовое решение и поддерживать его, по мере изменения апи ватсапа? лично для меня было бы прикольно прикрутить подобную оповещалку в компании)
16. orehova123 25.09.14 10:41 Сейчас в теме
Красиво! Согласна с (14), может, подумаете над продажей и поддержкой проекта?
19. delete 253 25.09.14 14:56 Сейчас в теме
(14) spezc, (16) orehova123, раз людям интересно, подумаю над этим)
48. bpc222 2015 16.07.15 09:31 Сейчас в теме
9. k4rimov 25.09.14 08:40 Сейчас в теме
О, Норильск) 30 лет там прожил) Но свалил) С инетом и СМС там беда, подтверждаю)
Статья отличная - можно все привести к законченной подсистеме (если еще прикрутить Viber и прочие мессенджеры на возможность выбора)
11. delete 253 25.09.14 08:46 Сейчас в теме
(9) k4rimov, Viber, как и WhatsApp, имеет закрытое API, однако для WhatsApp есть репозитории на гитхабе, которые с горем пополам можно прикрутить, а вот с Viber'ом там в этом смысле слабовато. Ну и представьте как поддерживать многообразие сервисов с закрытым API да ещё и совмещать с работой.
Одна из идей, о которых я упомянул выше, заключается в отдельной подсистеме, а вот с чем она будет работать - пока не скажу, сначала руками на себе обкатаю)
12. k4rimov 25.09.14 08:48 Сейчас в теме
13. delete 253 25.09.14 09:00 Сейчас в теме
(12) k4rimov, по сути всё, что имеет открытое API можно прикрутить как уведомлялку) Хоть телеграм, хоть инстаграмм, вконтакте и т.д. Они тоже требуют отслеживания изменений в API, хотя, конечно, в случае его открытости это не составляет большого труда)
15. CatMix 8 25.09.14 10:41 Сейчас в теме
Это всё здорово, но email чем не угодил?
Отправка сообщений уже реализована, немного допилить и можно слать всё что угодно, на любой адрес, группу итд.
RustIG; comptr; adva; TuneSoft; AllexSoft; +5 Ответить
17. DitriX 2091 25.09.14 12:38 Сейчас в теме
Ну хоть кто нибудь - сделайте прием данных от jabber, что бы можно было к гуглю подключиться и отправлять данные и получать их.
Ну плиииииз....
Там же все открыто, не надо никаких костылей :)
18. webester 26 25.09.14 14:44 Сейчас в теме
(17)Да их просто вагон. Поискомпробовали пользоваться?
20. DitriX 2091 25.09.14 15:14 Сейчас в теме
(18) иногда надо вчитываться в каммент, что бы понять его содержание.
Давайте еще раз повторю и выделю важные моменты:

сделайте прием данных от jabber, что бы можно было к гуглю подключиться и отправлять данные и получать их.

Раз уж вы так ловко умеете обращаться с гуглом, то может вы поможете мне с поиском данного решения? Ибо мои скромные навыки не позволили найти его.
В замен, я готов вам перечислить 50$m. Я думаю за поиск готового варианта с использованием ВК для 1С 8.2,8.3, которая умеет работать с джабером гугла и получать и отправлять сообщения - должно хватить :)
22. webester 26 26.09.14 10:04 Сейчас в теме
(20)
иногда надо вчитываться в каммент, что бы понять его содержание

Перечитал раза три так и не понял, что вам не понравилось, вот к примеру описание одной из обработок:
Клиент способен подключаться к серверу, получать список контактов, отправлять сообщения, получать сообщения, отображать анимированные смайлики (регулярные выражения), переписка отображается с помощью html, отдельная вкладка для каждого контакта, обновление статусов и непрочитанных сообщений, сохранение/восстановление данных формы при закрытии/открытии обработки

Взято отсюда http://infostart.ru/public/83685/
21. fomix 33 25.09.14 15:42 Сейчас в теме
Автор молодец! Спасибо за подробную инструкцию.
23. acsent 1199 26.09.14 15:24 Сейчас в теме
Эх, а ведь все апи идет через вызовы типа
https://v.whatsapp.net/v2/code?cc={0}&in={1}&to={0}{1}&method={2}&mcc={3}&mnc={4}
Поэтому можно обойтись без лишних компонент
SvetaBr; RustIG; +2 Ответить
24. delete 253 27.09.14 07:59 Сейчас в теме
(23) acsent, с одной стороны - да, можно, с другой - многое придётся пилить с нуля (шифрование, разбор пакетов, построение пакетов, обработку событий стороны сервера и т.д.).
Но, в итоге, нет ничего невозможного)
alexn1ne; +1 Ответить
29. acsent 1199 30.09.14 11:42 Сейчас в теме
(24) Весь код уже есть на С. Нужно только перевести на 1С )))
dreadlord; +1 Ответить
33. delete 253 01.10.14 16:02 Сейчас в теме
(29) acsent, и правда, всего-то)
(31) tunesoft, сложность, пожалуй, для тех, кто не знаком с другими яп (c# в нашем случае), а ненадёжность - полностью согласен, огромный минус
(32) victor-tm, к сожалению оч загружен по работе, в ближайшее время ждать готового решения не стоит

хочу ещё раз обозначить - я не претендую на новизну или эксклюзивность идеи или решения
если кто-то возьмётся и реализует полноценный поддерживаемый компонент - честь, слава, хвала и почёт)

насчёт коммерческого решения тоже есть нюанс - в трактовке некоторых юристов это может быть не очень-то и законно)
34. spezc 782 02.10.14 12:59 Сейчас в теме
(33) delete,
сделать коммерческую версию. выложить демку и рабочую за 5000р (ценообразование за вами). с учетом того, сколько скачано и сколько звезд - думаю профит будет нормальный) можно несколько ночей на разработку выделить)
27. AlX0id 29.09.14 14:03 Сейчас в теме
(23) acsent,
Да можно и свой сервер запилить, что в общем случае даже проще, пожалуй.
28. webester 26 29.09.14 14:52 Сейчас в теме
(27)И второй ватсапп в аппстор :)
25. zoytsa 27.09.14 08:23 Сейчас в теме
Спасибо! Отличная идея!
26. van2 27.09.14 12:01 Сейчас в теме
Спасибо за статью) Интересно почитать подобные материалы.
30. mzelensky 53 01.10.14 09:55 Сейчас в теме
Да, клевая статья. Спасибо автору за идею и примеры!
31. TuneSoft 247 01.10.14 10:04 Сейчас в теме
Автор молодец.
Основной минус данного решения: сложность и ненадёжность.
32. victor-tm 01.10.14 12:28 Сейчас в теме
Требуем коммерческую версию на УТ10.3!!!!
35. dj_serega 390 02.10.14 15:32 Сейчас в теме
Крутяк. Не знаю на сколько это актуально, так как imap на телефоне можно настроить и почту отправлять так что...
Тут разве что сравнение чата и почтовика.
36. hazd 05.10.14 23:41 Сейчас в теме
нужная вещь, автору спасибо)
37. AndreyNit 59 09.10.14 09:36 Сейчас в теме
Автору однозначно плюс. Спасибо, разработка пригодилась.
38. flyer 231 31.10.14 13:06 Сейчас в теме
Господа хотел поинтересоваться кто нибудь прикрутил возможность отправки изображений?
39. victor-tm 26.11.14 22:37 Сейчас в теме
Что на счет коммерческой версии?
41. pswd 27.11.14 13:13 Сейчас в теме
(39) victor-tm,
А можно услышать что вы хотите от коммерческой версии? Какие требования к ней?
40. flyer 231 27.11.14 08:42 Сейчас в теме
да не помешала бы. очень нужна рабочая версия с отправкой изображений
42. delete 253 27.11.14 18:48 Сейчас в теме
Коммерческой версии не будет
Извините
43. androgin 19.12.14 00:00 Сейчас в теме
RegAsm : error RA0000 : Unable to locate input assembly 'WhatsAppApi.dll' or one of its dependencies.
44. delete 253 24.12.14 13:58 Сейчас в теме
(43) androgin, Проверьте, есть ли путь к фрэймворку в переменной среды (можно посмотреть пример тут - http://www.jagjot.com/2014/01/register-c-vb-net-dll-regasm-gacutil/)
45. Ti_Gor1 21.01.15 08:42 Сейчас в теме
смс не приходят при регистрации. как можно решить?
длл зарегистрировал, при регистрации ком объект создан. такое ощущение что в правах винды где то проблема. (вин8)
46. delete 253 22.01.15 10:40 Сейчас в теме
(45) Ti_Gor1, уже давно изменилась версия официального приложения и токен. Чтобы всё заработало, нужно брать свежую библиотеку с github, если нужные изменения в неё уже внесли
47. Serginio 938 15.05.15 16:15 Сейчас в теме
Про DLL на .Net с 1С?
Можно так
Использование сборок .NET в 1С 7.x b 8.x 
http://infostart.ru/public/238584/

Ну и использование NuGet https://www.nuget.org/packages/WhatsAppAPI/
49. BaHgaJI 31 06.10.15 11:46 Сейчас в теме
А если я вытащу токен из приложения Whats app dll ка заработает?
50. Serginio 938 06.10.15 14:42 Сейчас в теме
Вот рабочий вариант https://github.com/mgp25/Chat-API-NET
Проверил рабочий. Правда я через 47
Скомпилируй и замени WhatsAppApi.dll

Победил отправку файлов
59. farkhod 14 18.11.15 20:42 Сейчас в теме
(50) Serginio,
Скомпилируй и замени WhatsAppApi.dll


Можно попросить готовый вариант dll?

Спасибо заранее
60. Serginio 938 19.11.15 10:34 Сейчас в теме
(59) Смотря какой вариант DLL тебе нужен. Если по сабжу то проси автора. Есть вариант для тестов генерации событий
http://infostart.ru/public/417830/
Там в класс добавлена запуск цикла.


Сборка=врап.загрузитьСборку(ФайлwhatsappFor1C); 
	whatsappFor1C=Сборка.GetType("WhatsAppApi.WhatsApp");
	Вацап=врап.СоздатьОбъект(whatsappFor1C,Телефон,Пароль,Логин,false,false);
	
 СоздатьОбертку(Вацап);
 Вацап.Connect();
  Сообщить(Врап.ВСтроку(Вацап.ConnectionStatus));


  Процедура OnLoginSuccess(Данные)
               Сообщить(Врап.ВСтроку(Данные));
			   Вацап.ProcessChat();

            КонецПроцедуры
51. stoned 09.11.15 22:25 Сейчас в теме
Камрады! Подскажите с отправкой изображений.
Добавил метод
public void SengMessageImage(string toPhoneNum, byte[] ImageData, ApiBase.ImageType imgtype)
{
instance.SendMessageImage(toPhoneNum, ImageData, imgtype);
return;
}

И никак не могу корректно передать этот ImageData!
Я так понимаю со стороны он ComSafeArray. Но как его заполнить правильно из картинки не догоняю!
Пытался переделать его через string Base64

public void SengMessageImage(string toPhoneNum, string ImageData, ApiBase.ImageType imgtype)
{
instance.SendMessageImage(toPhoneNum, Convert.FromBase64String(ImageData), imgtype);
return;
}

На стороне 1с
Данные = Base64Строка(ЭлементыФормы.Картинка.Картинка.ПолучитьДвоичныеДанные())

Данные = СтрЗаменить(Данные, Лев(Данные,4),"")
Данные = СтрЗаменить(Данные , Символы.ПС, "");
Вацап.SengMessageImage(Адресат, Данные, 0);

Подвешивает 1с!
52. Serginio 938 09.11.15 23:40 Сейчас в теме
Если у тебя вертится цикл с PollMessages();
то тебе нужно подправить в UploadFile
int i = 0;
            while (this.uploadResponse == null && i <= 100)
            {
                i++;
                //  this.pollMessage();
                System.Threading.Thread.Sleep(100);
}


Ну и представить номер
ApiBase.GetJID(toPhoneNum)
53. stoned 10.11.15 00:28 Сейчас в теме
То есть вместо
<=10 поставить <=100?

А вот это не понял где!

ApiBase.GetJID(toPhoneNum)
54. Serginio 938 10.11.15 08:15 Сейчас в теме
Вместо
// this.pollMessage();
нужно
System.Threading.Thread.Sleep(100);

Так как для получения событий у тебя наверное уже крутится цикл с pollMessage() и они блокируют друг друга
WhatsApp.cs метод

protected WaUploadResponse UploadFile(string b64hash, string type, long size, byte[] fileData, string to, string contenttype, string extension)
55. Serginio 938 10.11.15 08:21 Сейчас в теме
instance.SendMessageImage(ApiBase.GetJID(toPhoneNum), Convert.FromBase64String(ImageData), imgtype);
56. stoned 10.11.15 11:03 Сейчас в теме
(55) Serginio, Спасибо! Все заработало!
57. Serginio 938 12.11.15 15:50 Сейчас в теме
Выложил статью .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Именно большое количество событий в WhatsAppApi сподвигло меня на динамическую генерацию и компиляцию класса обертки и генерации модуля 1С для использования событий
58. spezc 782 12.11.15 22:17 Сейчас в теме
ждем коммерческий продукт
61. set5553 25.11.15 05:42 Сейчас в теме
Обнови ДЛЛ, токен и тд, по теме, если этот вариант скачаю, запыхает?
62. gusen_it 6 29.11.15 01:58 Сейчас в теме
Спасибо автору.
Вопрос всем кто использует. Работает без глюков? и как часто нужно перекомпилировать DLL ку, что бы решение работало?
63. stoned 30.11.15 14:15 Сейчас в теме
dll нужно пересобирать когда ключ меняют в программе.
Отправка текстов работает нормально, а вот картинки никак не хочет отправлять на рабочей базе!
Хотя у меня, с компьютера шлет все отлично и картинки и текст.
Возможно это связано с тем, что у меня выделенный канал. А на рабочей базе, 4g модем.
Я уже не знаю где искать причину!
64. set5553 02.12.15 10:15 Сейчас в теме
Где брать рабочий токен?
65. stoned 02.12.15 18:57 Сейчас в теме
(64) set5553, рабочий токен в библиотеке на гитхабе, ссылка есть выше.
66. set5553 03.12.15 05:29 Сейчас в теме
(65) stoned, вы про эту ссылку? https://github.com/mgp25/Chat-API-NET
{\"status\":\"fail\",\"reason\":\"old_version\"}
68. stoned 04.12.15 10:30 Сейчас в теме
Чего то подкрутили, ошибка авторизации!
На гитхабе пишут что сеть, однако до сих пор не пашет с утра.

https://github.com/mgp25/Chat-API-NET/issues/106
69. Serginio 938 04.12.15 14:55 Сейчас в теме
(68) Так заного получи пароль например https://davidgf.net/whatsapp/pwd.html
70. set5553 04.12.15 19:20 Сейчас в теме
(69) Serginio, кстати, на наш формат постоянно ругается, что можно сделать? номер +996701775777 +996 код станы, 701 код оператора, 775777 номер телефона
71. Serginio 938 05.12.15 14:03 Сейчас в теме
По моему они поменяли протокол авторизации. То, что раньше подключалось, сейчас говорит oldversion
72. Serginio 938 05.12.15 14:07 Сейчас в теме
73. Serginio 938 05.12.15 14:12 Сейчас в теме
Кстати WaUploadResponse подправили
 while (this.uploadResponse == null && i <= 100) 
262             { 
263                 if (m_usePoolMessages) 
264                     System.Threading.Thread.Sleep(500); 
265                 else 
266                 this.pollMessage(); 
267                 i++; 
268             } 
Показать
75. set5553 09.12.15 13:53 Сейчас в теме
Настроил, все работало и сегодня перестал авторизовываться. Посмотрел, номер заблокировали. Как быть? Из за чего заблокировали? Как обходить это?
76. astraborz 6 20.02.16 22:49 Сейчас в теме
Народ добрый вечер. кто-нибудь решил проблему с внедрением вацап в 1С? У кого работает нормально, отпишитесь пожалуйста
80. bpc222 2015 04.03.16 11:20 Сейчас в теме
(76) astraborz,

у меня работает :)
77. Serginio 938 24.02.16 14:48 Сейчас в теме
Посмотри. В декабре еще делал
Прикрепленные файлы:
WhatsApp.zip
78. astraborz 6 25.02.16 11:07 Сейчас в теме
(77) Serginio, Спасибо большое. сегодня испытаю. а у тебя до сих пор работает? интересная тема? мне это нужно чтобы в указанное время руководству шли отчеты всякие остатки, а картинки можно отправлять
81. paulpit 18 08.03.16 11:26 Сейчас в теме
(77) Serginio,
Скачал декабрьский архив.
При попытке получения пароля на мой номер: +79166123636
ругается:
Could not request code using either sms. SMS: {"status":"fail","reason":"old_version"}

79. Serginio 938 25.02.16 11:47 Сейчас в теме
Не знаю не пользуюсь, но тем кому делал вроде не жалуются. Картинки можно отправлять. Но лучше использовать свой сервер http://infostart.ru/public/434771/
Вацап постоянно авторизацию меняет, блокирует
82. Serginio 938 09.03.16 19:41 Сейчас в теме
значит опять токен поменяли
83. sarun 33 10.03.16 09:53 Сейчас в теме
"Could not request code using either sms. SMS: Удаленный сервер возвратил ошибку: (407) Требуется аутентификация посредника."
84. ROM_1C 691 10.11.16 13:43 Сейчас в теме
У меня ошибка регистрации компоненты
RegAsm : error RA0000 : Unable to locate input assembly 'c:\WhatsAppApi.dll' or one of its dependencies.

Вчем же дело?
85. ROM_1C 691 10.11.16 15:15 Сейчас в теме
43, как то решили проблему?
86. spenser123 13.01.17 13:34 Сейчас в теме
(85) если посмотрите саму статью и посмотрите что используют репозиторий на github - репозиторий оттуда был удален...
87. ROM_1C 691 13.01.17 16:46 Сейчас в теме
88. spenser123 13.01.17 17:24 Сейчас в теме
(87) конкретно эта работать не будет точно, возможно есть другие версии (или написать свою обертку для другого живого qpi на github), цель статьи, вроде, в этом и заключалась - показать как сделать обертку самому.
90. spenser123 16.01.17 10:18 Сейчас в теме
(89) деньги просить? это как? у них есть банальное платное API?
91. Serginio 938 16.01.17 11:38 Сейчас в теме
Да чего то жене разные сообщения приходят. Я вацапом не пользуюсь.
92. cmd_vasec 34 12.10.17 10:29 Сейчас в теме
Данная разработка живая? Стоит качать?
93. gorevg 16 16.10.17 12:58 Сейчас в теме
Не работает... На этапе отправки смс с кодом:
Процедура ЗапроситьСМС(Команда) 
 Вацап.Create(НомерТелефона, "", "");
 Если Вацап.RequestCode() Тогда
  Сообщить("Запрос отправлен, ожидайте СМС сообщение");
 КонецЕсли;
КонецПроцедуры


Вацап.RequestCode() - возвращает ложь...
Konstatine; +1 Ответить
94. tvssm 02.04.18 09:21 Сейчас в теме
Здорово! Интересная идея.
95. пользователь 18.06.18 02:27
Сообщение было скрыто модератором.
...
96. leobrn 614 05.09.18 17:25 Сейчас в теме
Актуально ещё ? Работает ?
97. Sakh1CPRO 29.11.18 14:31 Сейчас в теме
Обработка мертвая, ошибка при открытии: -2147221005(0x800401F3): Недопустимая строка с указанием класса
99. delete 253 29.11.18 17:53 Сейчас в теме
(97)
0x800401F3


Зарегистрировать класс не пробовали?

Вообще, уже нет смысла качать и использовать эти файлы.
Обработка уже давным-давно не актуальна.
Читайте внимательнее.

Используйте статью как общее руководство.
Оставьте свое сообщение