Создание чат-бота Время чтения: 1 мин. 673 просмотров Эта статья предназначена для разработчиков и технических специалистов, которые хотят создать и настроить чат-бота в Битрикс24. Создание чат-бота в Битрикс24 Для создания чат-бота в Битрикс24 перейти в раздел Разработчикам -> Добавить чат-бота и выбрать пункт Передавать боту сообщения из чата. * где: Название бота – имя бота, которое будет отображаться в чате; URL обработчик бота – url адрес до скрипта логики работы бота; Тип бота – оставить по умолчанию; Исходящий вебхук – определяет отправлять запрос на указанный url при вызове определённого события в системе; Настройка прав доступа – чтобы бот мог отправлять сообщения в чат, нужно дать права Создание и управление Чат-ботами (imbot). Также в верхней части окна задать название приложения для отображения в списке интеграций и нажать Создать бота. Установка чат-бота на сервер Установка чат-бота предполагает размещение файлов, описывающих логику работы бота, на сервере, куда будут отправляться запросы. Чат-бот может быть установлен как на сервере Битрикс24 в случае коробочной версии, так и на отдельной выделенной машине в случае облачной версии. Установка чат-бота на выделенный сервер Предполагается наличие установленного Apache и PHP на сервере, а также потребуется расширение curl для PHP.Удалить содержимое каталога html: rm /var/www/html/* Создать файл обработчика бота: touch /var/www/html/handler.php Создать файл конфигурации бота: touch /var/www/html/config_crm_example_ru.php * где, config_crm_example_ru.php – название файла, должно содержать домен вашего Битрикс24, например, если адрес вашего Битрикс24 crm.example.ru. URL адрес обработчика чат-бота в Битрикс24 будет следующим:http://SERVER_ADDRESS/handler.php Изменить владельца каталога html: chown www-data:www-data /var/www/html Установка чат-бота на сервер Битрикс24 Предполагается, что Битрикс24 был установлен и настроен с помощью веб-окружения (BitrixEnv). Создать файл обработчика бота: mkdir /home/bitrix/www/local/examplebot touch /home/bitrix/www/local/examplebot/handler.php Создать файл конфигурации бота: touch /home/bitrix/www/local/examplebot/config_crm_example_ru.php * где, config_crm_example_ru.php – название файла, должно содержать домен вашего Битрикс24, например, если адрес вашего Битрикс24 crm.example.ru. URL адрес обработчика чат-бота в Битрикс24 будет следующим:https://BITRIX_ADDRESS/local/examplebot/handler.php Настройка чат-бота Открыть файл обработчик handler.php: Выделенный сервер Сервер Битрикс24 nano /var/www/html/handler.php nano /home/bitrix/www/local/examplebot/handler.php Добавить следующий код: array_shift($_REQUEST['data']['BOT'])['BOT_ID'], 'CLIENT_ID' => $_REQUEST['auth']['application_token'], "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'], "MESSAGE" => $arReport . "\n" ), $_REQUEST['auth']); } // receive event "open private dialog with bot" or "join bot to group chat" else { if ($_REQUEST['event'] == 'ONIMBOTJOINCHAT') { // check the event - register this application or not if (!isset($appsConfig['TOKEN']) or empty($appsConfig['TOKEN'])) { return false; } // send help message how to use chat-bot. For private chat and for group chat need send different instructions. $result = restCommand($appsConfig['TOKEN'], 'imbot.message.add', array( 'BOT_ID' => array_shift($_REQUEST['data']['BOT'])['BOT_ID'], 'CLIENT_ID' => $_REQUEST['auth']['application_token'], 'DIALOG_ID' => $_REQUEST['data']['PARAMS']['DIALOG_ID'], 'MESSAGE' => 'Привет! Чем могу помочь?' ), $_REQUEST['auth']); } } /** * Send rest query to Bitrix24. * * @param $method - Rest method, ex: methods * @param array $params - Method params, ex: array() * @param array $auth - Authorize data, ex: array('domain' => 'https://test.bitrix24.com', 'access_token' => '7inpwszbuu8vnwr5jmabqa467rqur7u6') * * @return mixed */ function restCommand($token, $method, array $params = array(), array $auth = array()) { $queryUrl = 'https://' . $auth['domain'] . '/rest/' . $method; $queryData = http_build_query($params); #writeToLog(array('URL' => $queryUrl, 'PARAMS' => $params)), 'ReportBot send data'); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryUrl, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result, 1); return $result; } /** * Write data to log file. * * @param mixed $data * @param string $title * * @return bool */ function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(__DIR__ . '/imbot.log', $log, FILE_APPEND); return true; } За основу взять код из документации Битрикса. Открыть файл конфигурации config_domain_ru.php: Выделенный сервер Сервер Битрикс24 nano /var/www/html/config_crm_example_ru.php nano /home/bitrix/www/local/examplebot/config_crm_example_ru.php Добавить следующий код: 'YOUR_TOKEN' ); ?> * где, YOUR_TOKEN – ваш токен чат-бота, сгенерированный на этапе создания бота, найти можно в настройках бота в Битрикс24 Разработчикам -> Интеграции -> Название бота -> Редактировать -> Вебхук для вызова REST API. В примере токеном будет 138/4hkktahqi4asczlm. Метки:Bitrix24PHP Вперёд – Битрикс24 Резервное копирование и восстановление отдельных таблиц базы данных