Bitrix24 предоставляет мощный API, который позволяет разработчикам взаимодействовать с системой на более глубоком уровне. В этой статье мы рассмотрим, как использовать API Bitrix24 для обновления и получения пользовательских полей.
Что такое пользовательские поля?
Пользовательские поля — это дополнительные поля, которые вы можете создать в Bitrix24 для хранения специфической информации, которая не предусмотрена стандартными полями. Например, вы можете создать пользовательское поле для хранения номера лицензии или даты истечения срока действия контракта.
Обновление пользовательских полей с помощью API
Для обновления пользовательских полей в Bitrix24 через API, вы можете использовать метод crm.lead.userfield.update. Вот пример кода на PHP, который демонстрирует обновление свойства типа “список”:
<?php
$webhook = "https://crm-dsa.ru/rest/4/8f/"; // замените на ваш вебхук
$id = 316; // замените на ID элемента, который вы хотите обновить
$url = $webhook . "crm.lead.userfield.update.json";
$data = array(
    "id" => $id,
    "fields" => array(
        "LIST" => array(
            array(
                "ID" => "30",
                "SORT" => "10",
                "VALUE" => "тест",
                "DEF" => "N"
            ),
            array(
                "ID" => "31",
                "SORT" => "20",
                "VALUE" => "тест 1",
                "DEF" => "N"
            ),
            array(
                "ID" => "32",
                "SORT" => "30",
                "VALUE" => "тест 2",
                "DEF" => "N"
            ),
            array(
                "ID" => "33",
                "SORT" => "40",
                "VALUE" => "тест 3",
                "DEF" => "N"
            ),
            array(
                "ID" => "34",
                "SORT" => "50",
                "VALUE" => "тест 777",
                "DEF" => "N"
            )
        )
    )
);
$options = array(
    "http" => array(
        "header"  => "Content-type: application/x-www-form-urlencoded\r\n",
        "method"  => "POST",
        "content" => http_build_query($data)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { 
    /* Обработка ошибки */
    echo "Произошла ошибка при выполнении запроса.\n";
    $error = error_get_last();
    echo "Ошибка: " . $error['message'];
} else {
    var_dump(json_decode($result, true));
}
?>
Получение пользовательских полей с помощью API
Для получения пользовательских полей в Bitrix24 через API, вы можете использовать метод crm.lead.userfield.get. Вот пример кода на PHP:
<?php
$webhook = "https://crm-dsa.ru/rest/4/8f/"; // замените на ваш вебхук
$id = 316; // замените на ID поля, которое вы хотите получить
$url = $webhook . "crm.lead.userfield.get.json?id=" . $id;
$result = file_get_contents($url);
if ($result === FALSE) { 
    /* Обработка ошибки */
    echo "Произошла ошибка при выполнении запроса.\n";
    $error = error_get_last();
    echo "Ошибка: " . $error['message'];
} else {
    var_dump(json_decode($result, true));
}
?>
Вызов REST из локального приложения
Если вы хотите вызвать REST API Bitrix24 из локального приложения, вы можете использовать библиотеку CREST PHP. Вот пример кода, который вы можете вставить в файл index.php вашего приложения:
PHP
<?php
require_once('src/crest.php');
$webhook = "https://crm-dsa.ru/rest/4/8f/"; // замените на ваш вебхук
$id = 316; // замените на ID поля, которое вы хотите получить
$result = CRest::call(
    'crm.lead.userfield.get',
    array(
        'id' => $id
    )
);
if ($result['error']) {
    echo "Ошибка: " . $result['error_description'];
} else {
    var_dump($result);
}
?>
Обработка ошибок
Важно всегда обрабатывать возможные ошибки при работе с API. В приведенных выше примерах мы используем функцию file_get_contents для отправки HTTP-запроса. Если что-то пошло не так (например, неверный URL API, проблемы с сетью и т.д.), file_get_contents вернет FALSE, и мы можем получить информацию об ошибке с помощью функции error_get_last.
Заключение
API Bitrix24 — это мощный инструмент, который позволяет разработчикам взаимодействовать с системой на более глубоком уровне. С помощью примеров кода, приведенных в этой статье, вы можете начать использовать API для обновления и получения пользовательских полей в Bitrix24. Помните, что важно всегда обрабатывать ошибки и проверять возвращаемые API данные на наличие ошибок. Удачи вам в разработке! 😊