Автопубликация статей на 1С-Битрикс через REST API
Настраиваю автоматическую публикацию статей в 1С-Битрикс: тексты попадают в нужный инфоблок с детальной картинкой, разделами и SEO-полями без захода в админку. Работаю с облачной Битрикс24 и коробочной Bitrix (включая кастомные инфоблоки). Это услуга раздела автоматизации контента; связанное направление — AI-фабрика контента.
Что входит в автопубликацию Bitrix
- REST API Битрикс — методы
iblock.element.add,iblock.element.update,iblock.section.add - Webhook-авторизация — простая схема без OAuth (подходит для server-to-server)
- OAuth 2.0 — для сценариев с многими порталами или многопользовательских приложений
- Детальная и анонс-картинка — загрузка через
fileman.uploadи привязка к элементу инфоблока - Разделы инфоблока — автоматическое определение нужного
SECTION_IDпо названию или slug, создание новых - Произвольные свойства — заполнение user-properties инфоблока (числа, строки, файлы, списки, привязки)
- SEO-поля —
META_TITLE,META_KEYWORDS,META_DESCRIPTION, ЧПУ-код - Публикация в нескольких инфоблоках — один источник → блог + новости + маркетплейсы
Как мы публикуем через REST API Битрикс
- Анализ — коробочная или облачная версия, структура инфоблоков, используемые свойства, SEO-модули
- Аутентификация — создание входящего webhook или регистрация OAuth-приложения в Битрикс Маркете
- Проектирование маппинга — поля источника → поля элемента инфоблока, правила для разделов и свойств
- Разработка коннектора — REST-клиент, обработка ошибок
ERROR_NOT_ALLOWED_METHOD,QUERY_LIMIT_EXCEEDED - Тестирование — прогон реальных статей на тестовом инфоблоке, проверка картинок и свойств
- Запуск и поддержка — мониторинг через Sentry, ретраи, очередь повторов
Типовые проблемы и как мы их решаем
| Проблема | Решение |
|---|---|
ERROR_NOT_ALLOWED_METHOD | Проверка прав webhook-пользователя, добавление метода в разрешённые |
QUERY_LIMIT_EXCEEDED | Пакетный режим через batch-вызов, throttle на стороне коннектора |
| Битые кодировки (cp1251 vs utf-8) | Явная конвертация UTF-8 в заголовках, нормализация перед POST |
| Не прикрепляется детальная картинка | Сначала fileman.upload, получаем FILE_ID, затем передаём в PROPERTY_VALUES[DETAIL_PICTURE] |
| Нет нужного раздела в инфоблоке | Поиск через iblock.section.get, при отсутствии — iblock.section.add |
| Дубли элементов при повторе | Проверка по внешнему ID в свойстве инфоблока перед add |
| SEO-поля не сохраняются | Передача IPROPERTY_VALUES с ключами ELEMENT_META_TITLE, ELEMENT_META_DESCRIPTION |
С какими форматами источника работаем
- HTML — прямая передача в
DETAIL_TEXTсDETAIL_TEXT_TYPE='html' - Markdown — конвертация в HTML на стороне коннектора
- Структурированные поля — раздельно title, anons, body, картинки, свойства
- Галерея и файлы — привязка к многозначным свойствам типа «файл»