← Назад к заметкам

Заметки

Как сделать чат-бот локальным приложением в коробке

Как сделать чат-бота локальным приложением в коробочном Bitrix24: REST, scope, безопасность и пролог.

В коробке чат-бота удобно делать как локальное приложение: у него есть обработчики установки и событий, REST-права, собственные файлы и серверная логика. Просто положить публичный PHP-файл с токеном — плохая идея.

Задача

Нужно сделать бота, который живёт внутри коробочного портала и обрабатывает сообщения, команды или кнопки.

Локальное приложение даёт нормальную точку установки, scopes, обработчики событий и место для настроек. Это лучше, чем набор отдельных скриптов без общей структуры.

Структура приложения

Минимально нужны install.php, обработчик событий и страница настроек.

/local/apps/mybot/
    install.php
    event.php
    settings.php
    lib/
        BotService.php
        Security.php

Обработчики должны проверять подпись или авторизацию события, а не выполнять действие для любого внешнего POST.

Scope и REST

Запрашивайте только нужные права: imbot, im, task, crm или другие scopes по задаче.

Если бот только создаёт задачи, ему не нужен широкий доступ ко всей CRM. Чем меньше scope, тем проще объяснить и сопровождать приложение.

Пролог в коробке

Если обработчик работает внутри портала, ему может понадобиться подключение пролога и модулей.

define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS', true);

require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';

use Bitrix\Main\Loader;

Loader::includeModule('im');
Loader::includeModule('tasks');

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