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

21.11.23

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

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

Файлы

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

Наименование Скачано Купить файл
Простой пример отправки сообщений в Битрикс 24 с помощью вебхука:
.epf 7,42Kb
22 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С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Предоставьте вашим b2b-клиентам и дилерам круглосуточный доступ к актуальному ассортименту, ценам и остаткам. Автоматизируйте прием заказов и разгрузите менеджеров с помощью готовой <strong>веб-витрины</strong>, интегрированной с 1С в режиме реального времени

57600 руб.

26.11.2024    6573    4    3    

7

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

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

36000 руб.

03.08.2020    21637    30    24    

24

SALE! 15%

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

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

17280 14688 руб.

20.12.2024    3858    18    2    

20

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8399    7    5    

9

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

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    2075    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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Запроса.ПолучитьТелоКакСтроку();
Показать
Для отправки сообщения требуется регистрация/авторизация