WhatsApp и 1С

24.09.14

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

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

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

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

Скачать файл

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

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

Отмазка #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 Уведомления

См. также

Мессенджеры и боты Платформа 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    8560    53    11    

30

SALE! 25%

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

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

15000 11250 руб.

18.06.2021    64663    310    272    

365

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

Мощный модуль для интеграции 1С с чат-ботами: Telegram, Viber, WhatsApp, WhatsApp Business, Instagram, ICQ, Facebook, Vkontakte, Skype, Одноклассники, Яндекс.Алиса, Avito а так же виджеты чата для сайтов: Verbox, Jivochat. Это универсальное и эффективное решение с большими возможностями, простым интерфейсом, наличием визуального конструктора, базовыми сценариями поведения из коробки, позволяющий запустить чат-ботов в течении 1-го дня.

65000 руб.

08.10.2019    60652    35    1    

157

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

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

14900 руб.

15.11.2018    29833    36    49    

71

SALE! 25%

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

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

13200 9900 руб.

27.12.2021    37303    100    161    

193

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

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

14400 руб.

30.11.2020    13311    8    13    

15

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

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

7800 руб.

15.05.2024    1354    3    6    

6

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

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

4800 руб.

29.03.2021    16759    3    10    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1740 24.09.14 16:21 Сейчас в теме
Ого! А я в своё время искал Windows-клиента... и не нашёл... видно, искал плохо )))
2. fullstack1c 36 24.09.14 21:24 Сейчас в теме
Огромный плюс. Отличная статья :)
Alef; iov; +2 Ответить
3. iov 407 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 792 25.09.14 08:17 Сейчас в теме
Отличная статья!
Сколько будет стоить готовая рабочая обработка и ДЛЛ (чтобы работали без отмазок))))?
Чтобы я мог прикрутить к своей рабочей конфе?
10. delete 253 25.09.14 08:40 Сейчас в теме
(8) spezc, честно говоря даже не представляю, никогда таким образом не пытался зарабатывать. А ещё, хочу напомнить, что DLL останется рабочей ровно до того момента, как WhatsApp не поменяет версию или часть протокола. Никто не может гарантировать, что сделав полностью рабочую DLL ею можно будет пользоваться неограниченное время.

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

У меня есть пара идей для следующей публикации подобной тематики, в которых участвует меньше неконтролируемых посредников)
Однако нужно сначала всесторонне изучить эти идеи
14. spezc 792 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 2064 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 2100 25.09.14 12:38 Сейчас в теме
Ну хоть кто нибудь - сделайте прием данных от jabber, что бы можно было к гуглю подключиться и отправлять данные и получать их.
Ну плиииииз....
Там же все открыто, не надо никаких костылей :)
18. webester 26 25.09.14 14:44 Сейчас в теме
(17)Да их просто вагон. Поискомпробовали пользоваться?
20. DitriX 2100 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 1201 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 1201 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 792 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 393 02.10.14 15:32 Сейчас в теме
Крутяк. Не знаю на сколько это актуально, так как imap на телефоне можно настроить и почту отправлять так что...
Тут разве что сравнение чата и почтовика.
36. hazd 05.10.14 23:41 Сейчас в теме
нужная вещь, автору спасибо)
37. AndreyNit 60 09.10.14 09:36 Сейчас в теме
Автору однозначно плюс. Спасибо, разработка пригодилась.
38. flyer 233 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 233 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 941 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 941 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 941 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 941 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 941 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 941 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 941 12.11.15 15:50 Сейчас в теме
Выложил статью .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Именно большое количество событий в WhatsAppApi сподвигло меня на динамическую генерацию и компиляцию класса обертки и генерации модуля 1С для использования событий
58. spezc 792 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 941 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 941 05.12.15 14:03 Сейчас в теме
По моему они поменяли протокол авторизации. То, что раньше подключалось, сейчас говорит oldversion
72. Serginio 941 05.12.15 14:07 Сейчас в теме
73. Serginio 941 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 2064 04.03.16 11:20 Сейчас в теме
(76) astraborz,

у меня работает :)
77. Serginio 941 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 941 25.02.16 11:47 Сейчас в теме
Не знаю не пользуюсь, но тем кому делал вроде не жалуются. Картинки можно отправлять. Но лучше использовать свой сервер http://infostart.ru/public/434771/
Вацап постоянно авторизацию меняет, блокирует
82. Serginio 941 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 692 10.11.16 13:43 Сейчас в теме
У меня ошибка регистрации компоненты
RegAsm : error RA0000 : Unable to locate input assembly 'c:\WhatsAppApi.dll' or one of its dependencies.

Вчем же дело?
85. ROM_1C 692 10.11.16 15:15 Сейчас в теме
43, как то решили проблему?
86. spenser123 13.01.17 13:34 Сейчас в теме
(85) если посмотрите саму статью и посмотрите что используют репозиторий на github - репозиторий оттуда был удален...
87. ROM_1C 692 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 941 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() - возвращает ложь...