Виджет техподдержки
Для удобной организации технической поддержки в маркетплейс-приложениях был разработан виджет, который встраивается непосредственно в интерфейс приложения.
Порядок действий
Создание открытой линии и настройка Битрикс24 Network
Для начала работы, необходимо создать открытую линию. Для этого необходимо:
На портале перейти в Контакт-цент → Онлайн-чат → Битрикс24 Network
Пролистать список и нажать на Создать открытую-линию

Нажать настроить и провести настройку открытой-линии

После настройки, вернуться в выпадающее меню Битрикс24 Network, выбрать настроенную открытую линию, и нажать кнопку подключить
После выполнения этих действий — вам будет доступен код. Этот код понадобится далее.

Настройка виджета в приложении
В репозитории **OpenLine-templates **— есть два файла:
OpenLineService.php — php сервис, отвечающий за backend логику виджета
support-chat-button.js — frontend часть виджета
Для правильной работы виджета, в своем приложение, необходимо настроить ряд логики:
Получить скоуп openline.
OpenLineService.php
Перед вызовом всех методов класса OpenLineService.php (за исключением buildOpenLineUrl) необходимо предварительно создать экземпляр класса, передав в конструктор код открытой линии, полученный на предыдущем шаге.
Перед началом использование класса OpenLineService.php, внутри него необходимо подключить класс CRest.php.
//==============================Подключение CRest=============================================== require_once __DIR__ . '/../CRest/CRest.php'; use CRest; //=============================================================================================
Для инициализации канала-техподдержки на портале установившего, необходимо использовать метод
joinOpenLine, если вы хотите отправить сообщение установившему, в канале-техподдержки, после инициализации, то необходимо передать текст сообщения, в параметр message.
При успешной регистрации канала-техподдержки метод возвращает объект со следующими параметрами:
Параметр | Тип | Описание |
|
| Идентификатор канала поддержки на портале Битрикс24. |
|
| Результат отправки сообщения. |
При ошибке регистрации линии или получения идентификатора выбрасывается исключение Exception.
Обязательно записывайте значение возвращаемого параметра openLineId, для каждого портала, оно необходимо для работы виджета.
Пример использования:
try { $openLineService = new OpenLineService($_ENV['OPENLINE_CODE']); $openLineResult = $openLineService->joinOpenLine( "[B]Благодарим за установку нашего приложения![/B]\n\n" . "Если при использовании возникнут вопросы или сложности — наша команда оперативно поможет.\n\n" . "Приятного использования!" ); Logger::info('openLineResult', ['openLineResult' => $openLineResult], 'install'); } catch (\Exception $e) { Logger::error('openLineResult', ['openLineResult' => $e->getMessage()], 'install'); }
Результат:

support-chat-button.js
Содержимое необходимо встроить в frontend приложения любым желаемым способом.
Для работы виджета необходимо указать одну константу const SUPPORT_CHAT_URL = '';
Получить url чата можно двумя способами:
С использованием метода buildOpenLineUrl класса OpenLineService.php.
Собирая url вручную. Url имеет такой вид:
"https://<домен_портала>/online/?IM_DIALOG=<id_канала-открытой-линии>"
Рекомендуется ставится фолбэк на стандартный виджет, при получение ссылки на канал-техподдержки.
Вид виджета в приложении:

Дополнительно
Отправка сообщения в канал-техподдержки
Класс OpenLineService.php имеет метод sendMessage, позволяющий отправлять сообщение от лица канала-техподдержки — необходимому пользователю.
Получение ссылки на канал-техподдержки
Класс OpenLineService.php имеет статический метод buildOpenLineUrl, позволяющий получить url канала-техподдержки, передав параметры:
Параметр | Тип | Описание |
|
| Домен портала Битрикс24 без схемы и пути, например |
|
| Числовой идентификатор канала-техподдержки (значение параметра |
Ссылки на полезную документацию
О каналах поддержки: https://apidocs.bitrix24.ru/tutorials/chat-bots/support-bot.html
Если что-то не получилось: https://apidocs.bitrix24.ru/tutorials/openlines/example-connector.html