Заметки
Как сделать чат-бот локальным приложением в коробке
Как сделать чат-бота локальным приложением в коробочном 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'); Для публичных обработчиков важно не открывать прямой доступ к служебной логике. Внешний запрос должен проходить проверку, а чувствительные действия должны быть закрыты.