Розробка локальних додатків Бітрікс24

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка локальних додатків Бітрікс24
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка локальних застосунків Bitrix24

Локальний застосунок у Bitrix24 — найшвидший спосіб розпочати розробку інтеграції: не потрібно проходити модерацію Market, не потрібен публічний домен на старті (можна використовувати ngrok), не потрібно реєструватися як розробник. Все налаштовується прямо в налаштуваннях порталу за 15 хвилин.

Типовий сценарій: потрібно пов'язати Bitrix24 з внутрішньою системою компанії — 1С, складською програмою або власною CRM. Зовнішній доступ обмежений, публікувати в Market немає сенсу. Саме для таких завдань призначені локальні застосунки.

Реєстрація локального застосунку

Шлях у порталі: Застосунки → Розробникам → Інше → Локальний застосунок.

Параметри при створенні:

  • Тип авторизації: Серверний застосунок (OAuth) або JavaScript-застосунок (JS SDK без серверної частини)
  • Handler URL: адреса вашого застосунку, куди Bitrix24 відкриє 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     — дзвінки та телефонія

Обмеження локальних застосунків

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

Для більшості внутрішньокорпоративних інтеграцій ці обмеження несуттєві. Якщо в майбутньому знадобиться масштабування — код локального застосунку переноситься в тиражний без кардинального переопрацювання.

Терміни розробки

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

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