Ожидание событий

Уведомление в Битрикс24

Для примера отправки уведомления в Битркис24 будем использовать вебхук.

Создадим кастомное событие (хотя можно использовать и существующие типы).

2024-11-03_16-30.jpg

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

1.jpg

2024-11-05_21-19.jpg

Далее в обработчике события можно добавить вызов вебхука для Битрикс24. Разместить код можно в /bitrix/php_interface/init.php

<?php

if (\Bitrix\Main\Loader::includeModule('bxmaker.waitevent')) {

    $eventManager = \Bitrix\Main\EventManager::getInstance();
    $eventManager->addEventHandler(
        "bxmaker.waitevent",
        "OnItemActionTypeEvent",
        'bxmaker_waitevent_OnItemActionTypeEvent_b24notice'
    );
    function bxmaker_waitevent_OnItemActionTypeEvent_b24notice(\Bitrix\Main\Event $event)
    {
        $arFields = $event->getParameter('FIELDS');
        $itemId = $event->getParameter('ITEM_ID');
        $actionId = $event->getParameter('ACTION_ID');

        // тут нужно указать адрес вебхука и ID пользователя 
        // в Битркис24 которому будет отправлено уведомление
        $webhookRestApi = 'https://example1.bitrix24.ru/rest/1/8yb428m86o57247/';
        $userId = 1;

        $text = sprintf('%s | %s | OBJECT_ID: %s',
            $arFields['NAME'],
            $arFields['ADDITIONAL_TEXT'],
            $arFields['OBJECT_ID']
        );


        $oHttp = new \Bitrix\Main\Web\HttpClient();
        $oHttp->post(
            $webhookRestApi . '/im.notify.json',
            [
                'TO' => $userId,
                'MESSAGE' => $text,
                'TYPE' => 'SYSTEM',
            ]
        );
    }
}

И наконец добавляем в журнал запись о событии

\CEventLog::Log(
            \CEventLog::SEVERITY_ERROR,
            'MAY_TYPE',
            'bxmaker.waitevent',
            'test'
        );

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

Можно вручную запустить агента в командной PHP строке /bitrix/admin/php_command_line.php?lang=ru

\BXmaker\WaitEvent\Item::checkConditions(1);

В данном случае передаваемый параметр 1 - это идентификатор записи отслеживаемого события

2024-11-05_21-41.jpg

В результате в Битрикс24 появится уведомление

5.jpg