Интеграция 1С с мессенджерами — это частая задача для автоматизации клиентского сервиса. Раньше разработчики использовали механизм «Публичных аккаунтов» Viber, однако сегодня эта схема устарела. Рассмотрим подробно, как организовать взаимодействие с Viber в текущих реалиях, чтобы ваши сообщения доставлялись до абонентов, а система корректно обрабатывала входящие запросы.
Прежде всего, важно осознать, что концепция «Публичных аккаунтов» (Public Accounts) прекратила свое существование в прежнем виде. На текущий момент работа с мессенджером строится вокруг создания Viber Chatbot. Это основной инструмент, который позволяет вашей учетной системе 1С обмениваться данными с пользователями Viber.
Для начала работы вам необходимо:
auth token.API жестко регламентирован политикой платформы по борьбе со спамом.Одной из главных проблем, с которой сталкиваются разработчики при интеграции, является получение идентификатора пользователя (User ID). В Viber логика работает следующим образом:
ID этого пользователя.ID пользователя является уникальным для каждого конкретного бота. Если вы используете несколько ботов, идентификатор одного и того же человека в них будет различаться.Чтобы реализовать сбор ID в 1С, вам потребуется создать логику записи входящих сообщений. Рассмотрим упрощенный пример того, как это может выглядеть в коде:
// Пример обработки входящего сообщения в 1С (псевдокод)
Процедура ОбработатьВходящееСообщение(ДанныеJSON)
ПользовательID = ДанныеJSON.sender.id;
ТекстСообщения = ДанныеJSON.message.text;
// Записываем данные в регистр сведений для связи 1С с пользователем
Запись = РегистрыСведений.КонтактыМессенджеров.СоздатьМенеджерЗаписи();
Запись.IDМессенджера = ПользовательID;
Запись.Контрагент = НайтиКонтрагентаПоТелефону(ДанныеJSON.sender.name);
Запись.Записать();
КонецПроцедуры
В процессе разработки многие специалисты сталкиваются с необходимостью массовых рассылок. Здесь важно понимать разницу между общением в рамках диалога и сервисными рассылками:
API бота.API бота может заблокировать ваш аккаунт за нарушение политики анти-спама.Для взаимодействия с серверами Viber из 1С используйте стандартный объект HTTPСоединение или WinHTTP. Для отправки сообщения формируется POST-запрос, содержащий JSON-структуру с текстом сообщения и ID получателя.
Пример отправки сообщения через HTTP-запрос:
Функция ОтправитьСообщениеViber(IDПолучателя, Текст)
Соединение = Новый HTTPСоединение("chatapi.viber.com", 443, , , Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/pa/send_message");
Запрос.УстановитьТелоИзСтроки("{""receiver"": """ + IDПолучателя + """, ""text"": """ + Текст + """}");
Запрос.Заголовки.Вставить("X-Viber-Auth-Token", "ВАШ_ТОКЕН");
Результат = Соединение.ОтправитьДляОбработки(Запрос);
Возврат Результат.КодСостояния;
КонецФункции
Apache или IIS), который будет принимать POST-запросы от серверов Viber и передавать их в 1С.ID в базу 1С».Интеграция с Viber требует дисциплины в работе с идентификаторами и соблюдения правил мессенджера. Если вы выстроите логику «сначала диалог — потом сохранение ID», ваша система будет работать стабильно и без блокировок.