Простой пример отправки сообщений в Битрикс 24 с помощью вебхука (для новичков)

21.11.23

Интеграция - WEB-интеграция

Отправляем сообщения в Битрикс24 из 1С с помощью rest api, публикация рассчитана на тех, кто только начинает знакомиться с интеграцией Битрикс 24 через вебхуки.

Файлы

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

Наименование Скачано Купить файл
(только для физ. лиц)
Простой пример отправки сообщений в Битрикс 24 с помощью вебхука:
.epf 7,42Kb
18 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

В одной из задач понадобилось отправлять сообщения на портал Б24, а потом читать пришедший ответ. 
Быстро нашла методы и решила поделиться с вами, небольшая шпаргалка для начинающих свой путь взаимодействия с битрикс 24 с помощью вебхуков.

Первое, что нужно сделать, это создать вебхук на стороне битрикс, который будет содержать в себе права на наши методы. Нас интересует метод "im", пример настройки отправляю ниже:



При настройке вебхука стоит учитывать, что сгенерированный токен, "привязан" к пользователю, который его создает (это правило работает и для генерации токенов в приложениях для взаимодействия 1С и Б24 от вендоров). Поэтому для генерации вебхука рекомендую использовать технического пользователя.

В нашем случае, от пользователя, сгенерировавшего вебхук, будут приходить сообщения из 1С.

Для подключения забираем адрес портала и токен:




Теперь время открыть прикрепленную к статье обработку и пробовать отправлять сообщения :)
Внутри обработки нужно будет заполнить адрес  подключения, токен и ID получателя.
ID получателя можно получать различными методами, самый простой - зайти в его карточку на сайте и посмотреть адрес, последние цифры адреса карточки будут являться его ID.

Использование простое, набираете сообщение - нажимаем кнопку "отправить сообщение".

Чтобы получить ответ от пользователя, который он написал в битрикс 24, нажимаем "получить ответ".

Прикрепляю код отправки и принятия сообщений.

Обработка создавалась для Документооборота 2.1 (версия БСП 3.1.2.343), однако данные методы можно использовать на любой конфигурации 8.3 с БСП

Код отправки сообщения:

&НаСервере
Процедура ОтправитьСообщениеНаСервере()      
		
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
	Новый СертификатКлиентаWindows(),
	Новый СертификатыУдостоверяющихЦентровWindows());	
	Соединение = Новый HTTPСоединение(АдресПодключения,,,,,5,ssl); 	
	
	DIALOG_ID = "DIALOG_ID="+Получатель; //ID получателя сообщения
    MESSAGE = "MESSAGE="+ТекстСообщения; //текст сообщения
	SYSTEM = "SYSTEM="+"Y"; //параметр отвечает за отображение сообщения как системного, 
                            //значения - "N" как ложь и "Y" как истина
	
	ТекстHTTPЗапроса = Строка(Токен + "/im.message.add?" + DIALOG_ID + "&" + MESSAGE + "&" + SYSTEM);  
	
	HTTPЗапрос = Новый HTTPЗапрос(ТекстHTTPЗапроса);  
	РезультатHTTPЗапроса = Соединение.Получить(HTTPЗапрос);     
	
	ТелоРезультата = РезультатHTTPЗапроса.ПолучитьТелоКакСтроку();        
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТелоРезультата);   
	СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON); 
	
	Если СтруктураОтвета.Свойство("error") Тогда
		ОбщегоНазначения.СообщитьПользователю("Сообщение не отправлено по причине:"+СтруктураОтвета.error_description); 
		Возврат;
	КонецЕсли;
	
	IDОтправленногоСообщения = СтрЗаменить(Строка(СтруктураОтвета.result),Символы.НПП,"");//сохраним ID отправленного сообщения, для получения ответа
	ОтображениеЧата = ОтображениеЧата + Символы.ПС + "Отправленное сообщение: "+ТекстСообщения;
	ТекстСообщения = "";
	
КонецПроцедуры


Код получения ответа:
 

Процедура ПолучитьОтветНаСервере()
	
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
	Новый СертификатКлиентаWindows(),
	Новый СертификатыУдостоверяющихЦентровWindows());	
	Соединение = Новый HTTPСоединение(АдресПодключения,,,,,5,ssl); 
	
	DIALOG_ID = "DIALOG_ID="+Получатель; //ID получателя сообщения
	FIRST_ID = "FIRST_ID="+IDОтправленногоСообщения; //передаем сохраненный ID отправленного сообщения
                                                     //чтобы получить все сообщения, отправленные в чат после нашего
	
	ТекстHTTPЗапроса = Строка(Токен + "/im.dialog.messages.get?" + DIALOG_ID + "&" + FIRST_ID); 
	
	HTTPЗапрос = Новый HTTPЗапрос(ТекстHTTPЗапроса);  
	РезультатHTTPЗапроса = Соединение.Получить(HTTPЗапрос);     
	
	ТелоРезультата = РезультатHTTPЗапроса.ПолучитьТелоКакСтроку();        
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТелоРезультата);   
	СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON); 
	
	Если СтруктураОтвета.Свойство("error") Тогда
		ОбщегоНазначения.СообщитьПользователю("Сообщение не получено по причине:"+СтруктураОтвета.error_description); 
		Возврат;
	КонецЕсли;
	
	МассивСообщений = СтруктураОтвета.result.messages;
	
	Для каждого Строка из МассивСообщений Цикл
		ОтображениеЧата = ОтображениеЧата + Символы.ПС + "Полученное сообщение: "+Строка.text 	
	КонецЦикла;
	
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

битрикс 24 вебхук rest api bitrix 24

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    5913    4    0    

12

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    36924    72    45    

31

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    4193    3    3    

6

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    20271    26    24    

22

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1998    12    2    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KOMES 16.06.25 09:41 Сейчас в теме
Добрый день столкнулся вот с такой проблемой до этого некогда не занимался не чем подобным не подскажите в чем причина
Ошибка при вызове метода контекста (Получить)
{ВнешняяОбработка.ОтправкаСообщенийБ24.Форма.Форма.Форма(24)}: РезультатHTTPЗапроса = Соединение.Получить(HTTPЗапрос);
{ВнешняяОбработка.ОтправкаСообщенийБ24.Форма.Форма.Форма(45)}: ОтправитьСообщениеНаСервере();
по причине:
Ошибка работы с Интернет: Couldn't resolve host name

по причине:
Ошибка работы с Интернет: Couldn't resolve host name
2. KOMES 16.06.25 11:13 Сейчас в теме
Если кому-то пригодится вот такой результат (работает)

ssl = Новый ЗащищенноеСоединениеOpenSSL(
	Новый СертификатКлиентаWindows(),
	Новый СертификатыУдостоверяющихЦентровWindows());	
	Соединение = Новый HTTPСоединение(АдресПодключения,,,,,5,ssl);
	

	
	DIALOG_ID = "DIALOG_ID="+Получатель;
	MESSAGE = "&MESSAGE="+ТекстСообщения+"&";
	SYSTEM = "SYSTEM="+"Y"; //параметр отвечает за отображение сообщения как системного, значения - "N" как ложь и "Y" как истина
	
	
	ТекстHTTPЗапроса = Строка(Токен + "/im.message.add.json?" + SYSTEM + MESSAGE + DIALOG_ID);
	
	
	HTTPЗапрос = Новый HTTPЗапрос(ТекстHTTPЗапроса);  
	РезультатHTTPЗапроса = Соединение.Получить(HTTPЗапрос);
	ТелоРезультата = РезультатHTTPЗапроса.ПолучитьТелоКакСтроку();
Показать
Оставьте свое сообщение