Локальное приложение — это OAuth-приложение, установленное на один конкретный портал без публикации в Маркетплейсе. Оно даёт то, чего не может вебхук: авторизацию OAuth 2.0, встройки в интерфейс и действия от имени пользователя. Разберём, как его создать и настроить правильно.
Когда нужно локальное приложение
Локальное приложение — золотая середина между вебхуком и тиражным решением из Маркетплейса. Его выбирают, когда:
- Нужны встройки в интерфейс (placement): своя вкладка в карточке сделки, виджет на рабочем столе, кнопка в меню.
- Требуется OAuth 2.0 — действия от имени пользователя, а не одного владельца, как у вебхука.
- Решение делается под один портал и не выкладывается на Маркетплейс для чужих компаний.
- Нужны обработчики событий и отложенная логика на вашем backend.
Два типа: серверное и клиентское
При создании портал предлагает выбрать тип приложения — от него зависит модель авторизации.
| Параметр | Серверное | Клиентское (только JS) |
|---|---|---|
| Авторизация | OAuth 2.0 с client_secret | Только API из JS через BX24.js |
| Backend | Нужен свой сервер | Не обязателен |
| Хранение токенов | На сервере, безопасно | Токены выдаёт BX24 в рамках сессии |
| Фоновые задачи | Да (offline-события, cron) | Нет |
| Когда выбирать | Обмен данными, интеграции с внешними системами | Простые встройки-виджеты без своего бэкенда |
Для серьёзных интеграций почти всегда выбирают серверный тип: только он даёт полноценный OAuth, обработку событий и безопасное хранение client_secret.
Пошаговое создание
Приложение создаётся в том же разделе, что и вебхук:
- Левое меню → «Разработчикам» → «Другое» → «Локальное приложение».
- Выберите тип (серверное — «Использует только API» или с интерфейсом).
- Укажите путь обработчика (Handler URL) — адрес, который открывается при запуске приложения.
- Укажите путь для первоначальной установки (Installation URL) — страница, куда портал шлёт токены при установке.
- Отметьте нужные права (scope).
- Сохраните — портал выдаст
client_id(код приложения) иclient_secret(ключ).
Установка и получение токенов
При установке приложения портал открывает ваш Installation URL и передаёт параметры авторизации — в том числе AUTH_ID (access_token), REFRESH_ID (refresh_token), member_id и домен. Их нужно сохранить.
// POST на ваш INSTALL URL при установке
AUTH_ID = access_token (живёт 1 час)
AUTH_EXPIRES = 3600
REFRESH_ID = refresh_token (для обновления)
member_id = идентификатор портала
DOMAIN = mycompany.bitrix24.ruДля клиентского типа установку завершает JS-вызов:
BX24.init(function(){
// ... логика установки
BX24.installFinish();
});После установки вызовы к API идут с access_token в параметре auth, а по истечении часа токен обновляется через refresh_token.
Встройки в интерфейс (placement)
Главное преимущество приложения перед вебхуком — placement, точки встраивания в интерфейс портала. Приложение регистрирует их методом placement.bind.
CRM_DEAL_DETAIL_TAB— своя вкладка в карточке сделки.CRM_DEAL_DETAIL_ACTIVITY— блок в таймлайне.CALL_CARD— панель во время звонка.LEFT_MENU— пункт в левом меню.
POST /rest/placement.bind.json
{
"PLACEMENT": "CRM_DEAL_DETAIL_TAB",
"HANDLER": "https://myapp.example.com/deal-tab",
"TITLE": "Аналитика сделки"
}При открытии встройки портал вызывает ваш HANDLER и передаёт контекст (например, ID текущей сделки), а страница внутри iframe работает через BX24.js.
Отладка и типовые ошибки
Частые проблемы при первой настройке локального приложения:
| Симптом | Причина |
|---|---|
| Приложение не устанавливается | Installation URL недоступен или не по HTTPS |
| Пустой экран во встройке | Не вызван BX24.init() / не завершена установка |
| invalid_token через час | Не реализовано обновление по refresh_token |
| INSUFFICIENT_SCOPE | Не отмечено нужное право при создании |
Для отладки полезны методы app.info (данные приложения), scope (выданные права) и placement.list (зарегистрированные встройки).
Итог
Локальное приложение — правильный выбор, когда одного портала мало для вебхука: нужны OAuth-авторизация, встройки в интерфейс и события. Создаётся оно так же просто, в разделе «Разработчикам», но требует backend для хранения токенов и обработки установки. Ключевые артефакты — client_id, client_secret, Handler и Installation URL.
Мы в B2Bsite разрабатываем локальные и тиражные приложения Битрикс24 под ключ: от архитектуры OAuth и хранения токенов до встроек в карточки CRM и обработчиков событий — с учётом безопасности и нагрузки.
Частые вопросы
Чем локальное приложение отличается от тиражного?
Локальное установлено на один портал, где создано, и не проходит модерацию. Тиражное публикуется в Маркетплейсе и ставится на чужие порталы после проверки.
Какой тип приложения выбрать — серверный или клиентский?
Серверный — для интеграций с обменом данными, событиями и безопасным хранением client_secret. Клиентский — для простых встроек-виджетов без своего бэкенда.
Где взять client_id и client_secret?
Портал выдаёт их при создании локального приложения в разделе «Разработчикам». client_secret показывается один раз — сохраните его сразу в защищённом месте.
Зачем нужен Installation URL?
На него портал отправляет данные авторизации при установке приложения — access_token, refresh_token, member_id и домен. Их нужно сохранить для дальнейших вызовов API.
Что такое placement?
Это точки встраивания приложения в интерфейс портала: вкладки в карточке сделки, панели звонка, пункты меню. Регистрируются методом placement.bind.
Обязателен ли HTTPS для обработчиков?
Да. И Handler URL, и Installation URL должны быть доступны по HTTPS, иначе приложение не установится и встройки не откроются.
Нужно ли обновлять токен?
Да. access_token живёт около часа, после чего вызовы вернут invalid_token. Нужно заранее обновлять его через refresh_token.
Поможем с настройкой и поддержкой Для разработчиков
Поможем с настройкой, доработкой и поддержкой Для разработчиков.