Регистрация исходящих событий

CLI-инструмент — список, привязка и отвязка исходящих событий вебхуков Bitrix24 через event.get / event.bind / event.unbind. В паре с рецептом обработчика вебхуков.

Что делает

Рецепт 7 (обработчик вебхуков) предполагает, что события уже привязаны. Этот рецепт замыкает круг:

  • list — печатает все привязанные сейчас события на портале
  • bind — регистрирует целевой URL как обработчик для ONCRMDEALADD, ONCRMDEALUPDATE, ONCRMDEALDELETE (идемпотентно — повторная привязка той же пары ничего не делает)
  • unbind — удаляет эти привязки

Запустите один раз после деплоя обработчика; перезапускайте при каждом изменении конфигурации.

Стек

Node.js 18+. Без внешних зависимостей.

Переменные окружения

export B24_HOOK='https://your.bitrix24.com/rest/1/secret'
export HANDLER_URL='https://your-server.example.com/webhook'   # требуется для bind/unbind

Запуск

npx tsx 11-event-registration.ts list
npx tsx 11-event-registration.ts bind
npx tsx 11-event-registration.ts unbind

Исходник

skills/b24jssdk-recipes/examples/11-event-registration.ts.

Примечания

  • event.bind возвращает код ERROR_EVENT_BINDING_EXISTS, если та же пара (событие, обработчик) уже привязана — рецепт считает это успехом для идемпотентных запусков.
  • event.unbind выбрасывает исключение, если привязки нет; рецепт логирует и продолжает.
  • Вебхук, используемый для вызова event.bind, должен иметь scope event (он есть у входящих вебхуков, созданных из админ-UI портала).
  • Для приложений, установленных по OAuth, эквивалент event.bind — привязка событий на уровне приложения через dev-консоль или event.bind с авторизацией приложения.