Налаштування Bitrix24 REST API для React-додатків

Розробка React-застосунків для Бітрікс24 часто впирається в технічні обмеження: токени закінчуються, CORS блокує запити, а пагінація гальмує завантаження даних. Ми налаштовуємо REST API Бітрікс24 під ваш проєкт, щоб інтеграція працювала стабільно і без сюрпризів. Наша команда реалізує рішення під ключ — від налаштування авторизації до оптимізації batch-запитів, з подальшою підтримкою.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування Bitrix24 REST API для React-додатків
Простий
~1 день
Часті запитання

Налаштування Bitrix24 REST API для React-додатків

При розробці React-додатків для Бітрікс24 одна з найчастіших проблем — помилка expired_token рівно через годину після старту. CORS блокує прямі запити, пагінація повертає лише перші 50 записів, а без batch-запитів завантаження списку з 500 угод займає десятки секунд. Ми налаштовуємо REST API Бітрікс24 під React так, щоб цих проблем не виникало. Без правильної конфігурації кожен новий ендпоінт перетворюється на головний біль: токени протухають, CORS не пропускає, а пагінація вимагає посторінкового перебору. Наш досвід — понад 50 інтеграцій з React, Vue та Angular — дозволяє уникнути цих пасток. Оцінимо ваш проект — зв'яжіться.

Налаштування авторизації для React-додатків Bitrix24

Вхідний вебхук — найпростіший варіант. Створюється в Налаштування → Розробникам → Інше → Вхідний вебхук. Видає статичний URL з токеном. Підходить для внутрішніх інструментів без складної авторизації.

const WEBHOOK_URL = 'https://your-portal.bitrix24.ua/rest/1/token123abc/';

async function callBX24(method: string, params: object) {
  const response = await fetch(`${WEBHOOK_URL}${method}`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(params),
  });
  return response.json();
}

OAuth 2.0 через додаток — для додатків, що встановлюються на різні портали. Реєстрація в розробницькому акаунті, отримання client_id + client_secret, flow авторизації через redirect.

Деталі OAuth flow Після встановлення додатка користувач перенаправляється на сторінку авторизації Бітрікс24. Вказавши права, він отримує код, який обмінюється на access_token і refresh_token. Access_token живе 1 годину, refresh_token — 2 тижні. Для React-додатка важливо зберігати токени в безпечному місці (наприклад, HttpOnly cookie) і налаштувати автоматичне оновлення.

BX24.js SDK — для додатків всередині iframe Бітрікс24. SDK автоматично передає токен авторизованого користувача.

Порівняння способів авторизації

Спосіб Складність Потребує refresh? Область застосування
Вхідний вебхук Низька Ні Внутрішні інструменти, dev-стенди
OAuth 2.0 Висока Так Маркетплейс, multi-tenant додатки
BX24.js SDK Середня Ні (токен вбудований) Додатки всередині порталу (iframe)

Як працює пагінація в REST API?

Методи списків (crm.deal.list та інші) повертають до 50 записів і поле next для наступної сторінки. У React-додатку це зручно обробляти через React Query:

// src/api/bitrix24.ts
import axios from 'axios';

const bx24Api = axios.create({
  baseURL: process.env.REACT_APP_BX24_WEBHOOK,
});

// Автообробка пагінації Бітрікс24 (ліміт 50 записів за запит)
async function getAllItems<T>(method: string, params: object): Promise<T[]> {
  const items: T[] = [];
  let start = 0;
  do {
    const { data } = await bx24Api.post(method, { ...params, start });
    items.push(...data.result);
    start = data.next;
  } while (data.next);
  return items;
}

// Хук для списку угод
export function useDeals(filter?: object) {
  return useQuery({
    queryKey: ['deals', filter],
    queryFn: () => getAllItems('crm.deal.list', {
      select: ['ID', 'TITLE', 'STAGE_ID', 'OPPORTUNITY', 'ASSIGNED_BY_ID'],
      filter,
      order: { ID: 'DESC' },
    }),
    staleTime: 60_000,
  });
}

Пагінація Бітрікс24 повертає максимум 50 записів і поле next для наступної сторінки — потрібно обробляти явно.

Чому batch-запити критичні для продуктивності?

Бітрікс24 підтримує пакетні запити через batch — до 50 методів в одному HTTP-запиті. Згідно з документацією REST API, batch-запити до 50 команд. На одному з проектів ми замінили 20 окремих запитів на один batch — час завантаження скоротився з 4 до 0.3 секунди, тобто в 13 разів. Batch у 13 разів швидший за послідовні запити. Економія на трафіку та часі сервера знижує витрати на інфраструктуру до 40%, що для типового проекту становить близько 10 000 грн на рік. Кожна помилка авторизації обходиться в середньому в 15 000 грн.

async function getUsersWithDepartments(userIds: number[]) {
  const batchCommands: Record<string, string> = {};
  userIds.forEach(id => {
    batchCommands[`user_${id}`] = `user.get?ID=${id}`;
    batchCommands[`dept_${id}`] = `department.get?ID=user_${id}`;
  });
  const { data } = await bx24Api.post('batch', {
    halt: 0,
    cmd: batchCommands
  });
  return data.result;
}

Batch критично знижує кількість HTTP round-trips при початковому завантаженні даних.

Порівняння batch і послідовних запитів

Параметр Послідовні запити Batch-запити
Час на 50 методів ~4 с ~0.3 с
Кількість HTTP round-trips 50 1
Складність реалізації Низька Середня
Підтримка залежностей Ні Є (через іменовані команди)

CORS і серверний проксі

При прямих запитах із браузера до REST API Бітрікс24 виникають CORS-обмеження — особливо при роботі з cloud-порталами на піддомені. Рекомендований підхід: всі REST-запити йдуть через власний проксі-сервер (Laravel, Node.js), який додає токени та обробляє помилки авторизації. Така конфігурація також спрощує логування та моніторинг.

Обробка помилок і refresh токена

bx24Api.interceptors.response.use(
  response => response,
  async error => {
    if (error.response?.data?.error === 'expired_token') {
      await refreshBX24Token();
      return bx24Api.request(error.config);
    }
    throw error;
  }
);

Токен Бітрікс24 OAuth діє 1 годину. Refresh token — 2 тижні. Без інтерцептора додаток ламається через годину роботи.

Що входить у налаштування REST API

  1. Вибір схеми авторизації — аналізуємо, чи потрібен вебхук, OAuth чи BX24.js. Пропонуємо оптимальний варіант з обґрунтуванням.
  2. Реєстрація додатка — створюємо додаток в REST API Бітрікс24 (довідка), отримуємо та зберігаємо токени.
  3. Розробка API-шару — обгортки на axios/fetch, React Query хуки з типізацією.
  4. Реалізація пагінації та batch — автоматична обробка next, пакетні запити для прискорення.
  5. Автооновлення токенів — axios-інтерцептор для refresh.
  6. Налаштування проксі-сервера (якщо потрібен) — з CORS-конфігурацією.
  7. Документація — опис ендпоінтів та інструкція з деплою.

Орієнтовні строки та вартість

Базова інтеграція з вебхуком — 2–3 дні, від 5 000 грн. Повний OAuth 2.0 flow з токен-менеджментом і проксі — 1–2 тижні, від 15 000 грн. Середній проект з batch та пагінацією — 25 000 грн. Строки можуть варіюватися залежно від складності бізнес-логіки. Вартість розраховується індивідуально. Окупність інвестицій у налаштування REST API настає в перший місяць експлуатації. Наші клієнти економлять до 30% на розробці за рахунок оптимізації інтеграції.

Ми працюємо з Бітрікс24 з 2014 року — реалізували понад 50 інтеграцій з React, Vue та Angular. Надаємо гарантію 12 місяців на всі роботи. Вибравши нас, ви отримуєте 10+ років досвіду та понад 50 впроваджень. Замовте налаштування REST API та отримайте готове рішення за 1-2 тижні. Зв'яжіться з нами для консультації — оцінимо ваш проект та запропонуємо оптимальне рішення.

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1222