Как использовать примеры в документации
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
На страницах методов в справочнике API примеры собраны в блок «Примеры кода». Вкладки показывают вызов метода через cURL и через официальные SDK Битрикс24 — библиотеки для разных языков программирования. Чаще всего код на вкладке — это фрагмент вызова, а не готовый проект. В таком фрагменте нет установки библиотеки, подключения к Битрикс24 и реальных значений параметров.
Чтобы пример заработал, выберите вкладку под свою среду, замените метки вида **put_your_webhook_here** своими значениями, а для SDK создайте объект подключения.
Как устроен сам HTTP-запрос к REST API, объясняет статья Как выполняется запрос.
Какую вкладку выбрать
|
Вкладка |
Инструмент |
Где выполняется код |
Авторизация |
|
|
Без библиотек |
Любая среда с curl: терминал, скрипт, сервис проверки запросов |
|
|
|
Без библиотек |
Любая среда с curl: терминал, скрипт, сервис проверки запросов |
|
|
|
Проект на сборщике, код на TypeScript. Примеры рассчитаны на приложение во фрейме Битрикс24 |
В примерах — OAuth 2.0, упрощенный вариант для фрейма через |
|
|
|
B24JsSDK, UMD-сборка |
HTML-страница без сборщика |
OAuth 2.0, упрощенный вариант для фрейма: в примерах создается |
|
|
Только приложение, открытое во фрейме внутри интерфейса Битрикс24 |
OAuth 2.0, упрощенный вариант для фрейма: библиотека подставляет данные сама |
|
|
|
Серверный PHP, чаще всего вызов метода по имени |
||
|
|
Серверный PHP, вызовы через один метод |
||
|
|
Серверный Python |
||
|
|
Серверный Go, вызов метода по имени |
Набор вкладок отличается на разных страницах: на каждой есть только те примеры, которые подготовлены для конкретного метода. Если примера на B24PhpSDK нет, используйте CRest или соберите вызов по описанию параметров метода.
Подписи вкладок оформлены не везде одинаково: вкладка с примером на B24JsSDK может называться JS.
Сверяйте подпись с кодом: вкладку можно узнать по объекту, через который идет вызов. Объекты каждого SDK собраны в таблице раздела Что добавить, чтобы пример заработал.
Вкладки cURL подходят, когда нужно проверить метод, посмотреть сырой ответ или вызвать API там, где нельзя подключить SDK, например из терминала или стороннего сервиса. Для рабочей интеграции берите SDK: он подставляет авторизацию и разбирает ответ.
Дополнительные возможности у SDK разные: например, B24JsSDK сам обновляет токены и учитывает лимиты запросов. B24GoSDK по умолчанию повторяет запрос при превышении лимита, а токены обновляет после настройки клиента. B24PhpSDK, BX24.js и CRest не поддерживают методы REST 3.0. Если подходят несколько SDK, сравните их в обзоре SDK.
Что подставить вместо меток
Вместо реальных значений в примерах стоят метки в двойных звездочках, например **put_your_webhook_here**. Заменяйте метку целиком, вместе со звездочками: в значении их быть не должно.
|
Метка |
Чем заменить |
Где взять значение |
|
|
Адрес Битрикс24, например |
Адресная строка браузера |
|
|
Идентификатор пользователя, который создал вебхук |
URL входящего вебхука |
|
|
Секретный код входящего вебхука |
URL входящего вебхука |
|
|
Действующий access token приложения |
|
|
|
Идентификатор и секретный ключ приложения |
Карточка приложения |
|
Адрес обработчика вида |
Адрес своего обработчика, доступный из интернета по HTTPS |
Свой веб-сервер |
|
Другие метки, например |
Значение параметра метода |
Данные в Битрикс24 |
URL входящего вебхука выглядит так: https://your-company.bitrix24.ru/rest/1/8v5m0dmbxs2ky7wq/. Здесь 1 — идентификатор пользователя, 8v5m0dmbxs2ky7wq — секретный код.
Секретный код вебхука и access token дают доступ к данным Битрикс24. Не публикуйте их в клиентском коде, в репозиториях и на скриншотах. На сервере храните их в переменных окружения или защищенном хранилище, а во фрейме приложения авторизацию подставляет SDK.
Как выполнить пример без библиотек
Примеры на вкладках cURL (Webhook) и cURL (OAuth) не требуют установки: достаточно заменить метки на свои значения. Команды написаны для Bash. В PowerShell на Windows вызывайте curl.exe вместо curl, а переносы строк \ и кавычки замените по правилам PowerShell.
Пример ниже создает сделку методом crm.item.add. Это упрощенный вариант вкладки cURL (Webhook) со страницы метода. Параметр entityTypeId задает тип объекта CRM: значение 2 означает сделку. Параметр fields содержит только название title. Поля, у которых есть значения по умолчанию, Битрикс24 заполнит сам.
Для вызова нужен scope crm и право добавлять сделки. Если в настройках CRM включена опция Проверять обязательные пользовательские поля в REST, добавьте эти поля в fields. Каждый запуск создает новую сделку, поэтому проверяйте пример на тестовом Битрикс24.
Запрос с метками:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"entityTypeId":2,"fields":{"title":"Новая сделка"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.add
Тот же запрос с подставленными значениями:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"entityTypeId":2,"fields":{"title":"Новая сделка"}}' \
https://your-company.bitrix24.ru/rest/1/8v5m0dmbxs2ky7wq/crm.item.add
На вкладке cURL (OAuth) адрес короче — в нем нет идентификатора пользователя и кода вебхука, а токен передается в теле запроса в параметре auth:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"entityTypeId":2,"fields":{"title":"Новая сделка"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.item.add
Ответ у обеих вкладок одинаковый. Если запрос прошел успешно, Битрикс24 вернет созданную сделку в поле result.item, а ее идентификатор — в поле result.item.id. Полный ответ приведен на странице метода.
Сокращенный ответ:
{
"result": {
"item": {
"id": 16,
"title": "Новая сделка",
"categoryId": 0,
"stageId": "NEW",
"assignedById": 1
}
},
"time": {
"duration": 1.9278500080108643
}
}
Что добавить, чтобы пример заработал
Большинство примеров для SDK начинается сразу с вызова метода и обращается к объекту подключения, которого в самом примере нет. Создайте объект подключения по инструкции со страницы нужного SDK, а затем вставьте фрагмент из документации. Что есть в примере и что подготовить самостоятельно:
|
Вкладка |
Что есть в примере |
Что подготовить |
|
|
Вызов через объект |
Подключение |
|
|
Готовая HTML-страница с тегом |
Приложение, которое открывает эту страницу во фрейме внутри интерфейса Битрикс24. Метки, если они есть, замените на свои значения |
|
|
Вызов через глобальный объект |
Подключение библиотеки — BX24.js: обзор библиотеки |
|
|
Вызов по имени через |
Установленный SDK и подключение в переменной из примера — B24PhpSDK: установка и первый вызов |
|
|
Строка |
Файлы SDK на сервере и заполненный |
|
|
Вызов через |
Клиент — Установка и использование B24PySDK |
|
|
Вызов через |
Клиент и контекст — Установка и использование B24GoSDK |
Примеры на вкладках JS (TS), JS (UMD) и JS рассчитаны на приложение, открытое во фрейме внутри интерфейса Битрикс24: $b24 в них — объект B24Frame, его создает функция initializeB24Frame. Для серверного кода на Node.js нужен другой класс подключения — B24Hook или B24OAuth, они описаны в статье Установка и использование B24JsSDK.
В ссылке на UMD-сборку почти во всех примерах закреплена первая мажорная версия, @bitrix24/b24jssdk@1. Если проект работает на второй версии, замените номер в ссылке на @2.
Если ставите B24JsSDK из npm, сверьте версию с примером. В версии 3.0.0 удалены методы $b24.callMethod, $b24.callListMethod, $b24.fetchListMethod, $b24.callBatch и $b24.callBatchByChunk, а на многих страницах примеры еще написаны через них. Чтобы такой пример заработал, установите вторую версию SDK или замените вызов на $b24.actions.v2, как описано в разделе Способы вызова методов.
Разбор ответа у инструментов тоже разный. Запрос через cURL отдает сырой JSON, а каждый SDK оборачивает его по-своему. Состав ответа описан на странице метода в разделе «Обработка ответа». Как добраться до данных, объясняет страница SDK.
Названия полей и параметров
Копируйте названия полей из примера и из раздела «Параметры метода» без изменений. В разных группах методов приняты разные соглашения об именовании:
- универсальные методы CRM, например crm.item.add, используют camelCase —
title,stageId,entityTypeId - более ранние методы, например crm.deal.add, используют верхний регистр с подчеркиваниями —
TITLE,STAGE_ID
Универсальные методы crm.item.* принимают и названия в верхнем регистре с подчеркиваниями, но полагаться на это не стоит.
Методы CRM из обеих групп относятся к прежней версии API и игнорируют незнакомое название поля в fields: значение такого поля не сохранится, а ошибки из-за него не будет. Методы REST 3.0 на такое поле вернут ошибку.
Ошибки и диагностика
Сначала проверьте, не помечен ли метод как устаревший. На странице такого метода указана замена, используйте ее.
Раздел Ошибки и диагностика статьи о первом запросе разбирает общие ошибки вызова, например неверный адрес вебхука или нехватку scope. При запуске примеров чаще встречаются такие ошибки:
|
Что вернул Битрикс24 |
Причина |
Что сделать |
|
Ошибка |
Истек срок действия access token приложения |
Получите новый токен по refresh token, как описано в статье Автоматическое продление токенов OAuth 2.0 |
|
Ошибка со статусом |
Метод работает только в контексте приложения и через вебхук недоступен |
Вызовите метод из приложения |
|
Ошибка доступа из раздела «Обработка ошибок» метода |
Пользователю, от имени которого выполняется запрос, не хватает прав. Для вебхука это его создатель, для приложения — владелец токена |
Выдайте пользователю права или выполните запрос от имени другого пользователя с нужными правами |
|
Ошибка в значении параметра или в ответе нет части переданных полей |
Опечатка в названии поля или неверная структура параметров |
Сверьте названия с разделом «Параметры метода». Правила передачи массивов и вложенных структур описаны в статьях Как выполняется запрос и Кодирование данных |
|
Ошибка |
Слишком много запросов за короткое время |
Уменьшите частоту запросов. Ограничения описаны в статье Лимиты REST API |
Остальные коды собраны в статье Коды ошибок.