Блог Горошко Андрея Bitrix24,SQL Создать источник biconnector.source.add

Создать источник biconnector.source.add

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Создать источник biconnector.source.add». Вы узнаете экспертные методики работы с biconnector.source.add и научитесь избегать типичных ошибок начинающих разработчиков.

Создать источник biconnector.source.add

> Scope: biconnector
>
> Кто может выполнять метод: пользователь с доступом к разделу «Рабочее место аналитика»

Метод biconnector.source.add создает новый источник данных, связанный с коннектором.

Параметры метода

Название
тип
Описание
fields
object
Объект, содержащий данные для создания нового источника. Формат объекта:

{
    "field_1": "value_1",
    "field_2": "value_2",
    ...,
    "field_n": "value_n"
}

— field_n — название поля
— value_n — значение поля

Подробное описание ниже

Параметр fields {#fields}

Название
тип
Описание
title
string
Название источника
description
string
Описание источника
active
boolean
Активность источника.
По умолчанию true
connectorId
integer
Идентификатор коннектора, можно получить методами biconnector.connector.list или biconnector.connector.add
settings
object
Список параметров для авторизации, передается объектом, где ключ — code параметра.
Параметры можно получить методами biconnector.connector.list или biconnector.connector.get

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"title":"CRM Source","description":"Источник данных CRM","connectorId":123,"settings":{"login":"admin","password":"qwerty"}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/biconnector.source.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"title":"CRM Source","description":"Источник данных CRM","connectorId":123,"settings":{"login":"admin","password":"qwerty"}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/biconnector.source.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'biconnector.source.add',
    		{
    			fields: {
    				"title": "CRM Source",
    				"description": "Источник данных CRM",
    				"connectorId": 123,
    				"settings": {
    					"login": "admin",
    					"password": "qwerty"
    				}
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	result.error() ? console.error(result.error()) : console.info(result);
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'biconnector.source.add',
                [
                    'fields' => [
                        "title"       => "CRM Source",
                        "description" => "Источник данных CRM",
                        "connectorId" => 123,
                        "settings"    => [
                            "login"    => "admin",
                            "password" => "qwerty"
                        ]
                    ]
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($response->getError()) {
            error_log($response->getError());
            echo 'Error: ' . $response->getError();
        } else {
            echo 'Success: ' . print_r($result, true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding source: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'biconnector.source.add',
        {
            fields: {
                "title": "CRM Source",
                "description": "Источник данных CRM",
                "connectorId": 123,
                "settings": {
                    "login": "admin",
                    "password": "qwerty"
                }
            }
        },
        (result) => {
            result.error() ? console.error(result.error()) : console.info(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'biconnector.source.add',
        [
            'fields' => [
                'title' => 'CRM Source',
                'description' => 'Источник данных CRM',
                'connectorId' => 123,
                'settings' => [
                    'login' => 'admin',
                    'password' => 'qwerty'
                ]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
      "id": 7
    },
    "time": {
        "start": 1725013197.635808,
        "finish": 1725013198.580873,
        "duration": 0.9450650215148926,
        "processing": 0.6822988986968994,
        "date_start": "2024-08-30T12:19:57+02:00",
        "date_finish": "2024-08-30T12:19:58+02:00",
        "operating": 0
    }
}

Возвращаемые данные

Название
тип
Описание
result
integer
Корневой элемент ответа, содержит идентификатор созданного источника
time
time
Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 200

{
    "error": "VALIDATION_FIELDS_NOT_PROVIDED",
    "error_description": "Fields not provided."
}

Возможные коды ошибок

КодОписаниеЗначение
VALIDATION_FIELDS_NOT_PROVIDEDFields not provided.Поля не переданы в запросе
VALIDATION_UNKNOWN_PARAMETERSUnknown parameters: #LIST_OF_PARAMS#Обнаружены неизвестные параметры: перечень
VALIDATION_REQUIRED_FIELD_MISSINGField «#TITLE#» is required.Обязательное поле #TITLE# не передано
VALIDATION_READ_ONLY_FIELDField «#TITLE#» is read only.Поле #TITLE# доступно только для чтения и не может быть изменено
VALIDATION_IMMUTABLE_FIELDField «#TITLE#» is immutable.Поле #TITLE# неизменяемое
VALIDATION_INVALID_FIELD_TYPEField «#TITLE#» must be of type #TYPE#.Поле #TITLE# должно быть типа #TYPE#
CONNECTOR_NOT_FOUNDConnector was not found.Коннектор не найден
SOURCE_CREATE_CONNECTION_ERRORCannot create connection.Ошибка при создании подключения
SOURCE_UPDATE_CONNECTION_ERRORCannot update connection.Ошибка при обновлении подключения
BX_ERRORCannot delete source. Delete all related datasets first.Нельзя удалить источник, пока существуют связанные датасеты
  • [](./biconnector-source-update)
  • [](./biconnector-source-get)
  • [](./biconnector-source-list)
  • [](./biconnector-source-delete)
  • [](./biconnector-source-fields)

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к biconnector.source.add, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Создать источник biconnector.source.add».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

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

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «При добавлении события OnCalendarEntryAdd», проанализируем лучшие практики и

После сохранения заказа OnOrderEntitySavedПосле сохранения заказа OnOrderEntitySaved

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «После сохранения заказа OnOrderEntitySaved». Вы узнаете экспертные методики работы с после сохранения и

Получить информацию о стадии rpa.stage.getПолучить информацию о стадии rpa.stage.get

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить информацию о стадии rpa.stage.get». Вы узнаете экспертные методики работы с rpa.stage.get и