Настройка Bitrix24 REST API для React-приложений

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

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

Схемы авторизации

Входящий вебхук — самый простой вариант. Создаётся в Настройки → Разработчикам → Другое → Входящий вебхук. Выдаёт статичный URL с токеном. Подходит для внутренних инструментов без сложной авторизации.

const WEBHOOK_URL = 'https://your-portal.bitrix24.ru/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%. Каждая ошибка авторизации обходится в среднем в $140–200.

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 и серверный прокси

При прямых запросах из браузера к Битрикс24 REST возникают 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 дня. Полный OAuth 2.0 flow с токен-менеджментом и прокси — 1–2 недели. Сроки могут варьироваться в зависимости от сложности бизнес-логики. Стоимость рассчитывается индивидуально. Окупаемость инвестиций в настройку REST API наступает в первый месяц эксплуатации. Наши клиенты экономят до 30% на разработке за счёт оптимизации интеграции.

Более 5 лет мы работаем с Битрикс24 и Битрикс24 Cloud — реализовали 50+ интеграций с React, Vue и Angular. Предоставляем гарантию 12 месяцев на все работы. Закажите настройку REST API и получите готовое решение за 1-2 недели. Свяжитесь с нами для консультации — оценим ваш проект и предложим оптимальное решение.

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    835
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    928
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    864
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1220