Разработка локальных приложений Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка локальных приложений Битрикс24
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка локальных приложений Битрикс24

Локальное приложение в Битрикс24 — самый быстрый способ начать разработку интеграции: не нужно проходить модерацию Маркета, не нужен публичный домен на старте (можно использовать ngrok), не нужно регистрироваться как разработчик. Всё настраивается прямо в настройках портала за 15 минут.

Типичный сценарий: нужно связать Битрикс24 с внутренней системой компании — 1С, складской программой или собственной CRM. Внешний доступ ограничен, публиковать в Маркете смысла нет. Именно для таких задач предназначены локальные приложения.

Регистрация локального приложения

Путь в портале: Приложения → Разработчикам → Другое → Локальное приложение.

Параметры при создании:

  • Тип авторизации: Серверное приложение (OAuth) или JavaScript-приложение (JS SDK без серверной части)
  • Handler URL: адрес вашего приложения, куда Битрикс24 откроет iframe при запуске
  • Start URL: URL для старта приложения из меню (может совпадать с Handler URL)
  • Права: набор скоупов — crm, task, user, disk, catalog и т.д.

После создания получаете client_id и client_secret. Для JavaScript-типа секрет не нужен — токен генерируется на портале и передаётся в iframe через параметры запроса.

Разница между JavaScript и серверным типом

Параметр JavaScript-приложение Серверное приложение
Авторизация Токен из параметров URL/postMessage OAuth 2.0 Authorization Code
Серверная часть Не требуется Обязательна
Хранение секрета Нет секрета client_secret на сервере
Фоновая работа Нет Да (cron, очереди)
Подписка на события Через BX24.js Через event.bind REST
Когда использовать UI-виджеты, дашборды Синхронизация, автоматизация

Разработка JavaScript-типа локального приложения

Минимальный рабочий пример:

<!DOCTYPE html>
<html>
<head>
    <script src="//api.bitrix24.com/api/v1/"></script>
</head>
<body>
<div id="app"></div>
<script>
BX24.init(function() {
    var auth = BX24.getAuth();
    // auth.domain — домен портала
    // auth.access_token — токен для REST-запросов

    BX24.callMethod('user.current', {}, function(result) {
        if (result.error()) {
            document.getElementById('app').innerHTML = 'Ошибка: ' + result.error();
            return;
        }
        var user = result.data();
        document.getElementById('app').innerHTML =
            'Привет, ' + user.NAME + '!';
    });

    BX24.fitWindow();
});
</script>
</body>
</html>

Файл //api.bitrix24.com/api/v1/ — это Bitrix24 JS SDK, загружается с CDN Bitrix. Подключать напрямую с портала не нужно.

Разработка серверного типа

Для серверного локального приложения нужен HTTPS-endpoint (для разработки подойдёт ngrok):

ngrok http 3000
# Получаем: https://abc123.ngrok.io

Этот URL указываем как Handler URL в настройках приложения.

Обработка OAuth callback на Node.js:

const express = require('express');
const axios = require('axios');
const app = express();

// Handler URL — точка входа
app.get('/', (req, res) => {
    const { AUTH_ID, REFRESH_ID, AUTH_EXPIRES, DOMAIN, PLACEMENT } = req.query;

    // Сохраняем токены
    saveTokens({
        domain: DOMAIN,
        accessToken: AUTH_ID,
        refreshToken: REFRESH_ID,
        expiresIn: parseInt(AUTH_EXPIRES)
    });

    res.sendFile(__dirname + '/public/index.html');
});

// Refresh token endpoint
app.post('/refresh', async (req, res) => {
    const { refresh_token, domain } = req.body;
    const response = await axios.post(
        `https://${domain}/oauth/token/`,
        new URLSearchParams({
            grant_type: 'refresh_token',
            client_id: process.env.CLIENT_ID,
            client_secret: process.env.CLIENT_SECRET,
            refresh_token
        })
    );
    res.json(response.data);
});

Права доступа и скоупы

Локальные приложения запрашивают права при установке. Если после регистрации нужно добавить новый скоуп — пользователь должен переустановить приложение (нажать кнопку обновления прав). Это важный UX-момент: планируйте права заранее, особенно если приложение уже в продакшне.

Основные скоупы:

crm           — сделки, лиды, контакты, компании
task          — задачи и проекты
user          — пользователи портала
disk          — файлы и папки
calendar      — события календаря
sonet_group   — группы и рабочие пространства
catalog       — товарный каталог
sale          — магазин и заказы
telephony     — звонки и телефония

Ограничения локальных приложений

  • Работают только на одном портале
  • Нельзя опубликовать в Маркете
  • При смене домена портала нужна переконфигурация
  • Нет поддержки нескольких redirect_uri

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

Сроки разработки

Задача Срок
Настройка локального приложения + базовая авторизация 0,5–1 день
Простой виджет (только чтение данных CRM) 1–3 дня
Интеграция с внутренней системой (двусторонняя) 1–3 недели
Полноценное корпоративное приложение 1–2 месяца

Локальные приложения — оптимальный старт для MVP: быстрое развёртывание, минимум бюрократии, полный доступ к REST API. Переход в тиражный формат при необходимости занимает 2–3 дня дополнительной работы.