Интеграция с Битрикс24: REST API, вебхуки, OAuth

↑ 5.5 Интеграции со сторонними API: 1С, Битрикс24, FHIR · ← Предыдущая · → Следующая

По желанию~3 мин чтенияУровень: middle

Зачем это на собесе

Пример интеграции с SaaS CRM: вебхуки, OAuth и лимиты запросов.

Объяснение

Битрикс24 предоставляет REST API для CRM (лиды, сделки, контакты), задач, пользователей и др.

Способ доступаКогда
Входящий вебхукпростой доступ от имени пользователя, токен в URL; для внутренних скриптов
Локальное приложение / OAuth 2.0приложение с правами, access/refresh токенами
Исходящие вебхуки / события (onCrmDealAdd)Битрикс уведомляет ваш сервис об изменении
// Входящий вебхук: https://portal.bitrix24.ru/rest/1/<token>/
var resp = await http.PostAsJsonAsync("crm.deal.list", new
{
    filter = new Dictionary<string, object> { [">DATE_MODIFY"] = since },
    select = new[] { "ID", "TITLE", "STAGE_ID", "OPPORTUNITY" },
    start = 0
}, ct);

Особенности:

  • Списки отдаются пачками по 50 записей, поле next для продолжения; есть batch (до 50 команд за вызов).
  • Лимиты запросов (примерно 2 запроса в секунду на портал): нужны очередь и backoff.
  • Поля справочников — идентификаторы стадий и списков; кастомные поля UF_CRM_*.
  • OAuth: access-токен живёт около часа, refresh нужно хранить и обновлять; при просроченном токене — 401.
  • События Битрикса — уведомление без полных данных: за подробностями делается запрос.

Нюансы и подводные камни

  • Токен вебхука — секрет: не логируйте URL целиком.
  • Проверяйте application_token в исходящих вебхуках.
  • Обрабатывайте повторные и потерянные события: периодическая сверка (reconciliation).
  • Не используйте синхронный вызов Битрикса в пользовательском запросе: очередь + фон.
  • Удаление и слияние записей в CRM меняют идентификаторы.

Практика

  1. Прочитайте сделки с пагинацией и сохраните в свою БД.
  2. Примите исходящий вебхук и проверьте токен приложения.
  3. Реализуйте лимитер запросов к API.

Вопросы с ответами

Связанные темы