Блог Горошко Андрея Bitrix24,PHP Получить контакт по Id crm.contact.get

Получить контакт по Id crm.contact.get

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

Получить контакт по Id crm.contact.get

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

Метод crm.contact.get возвращает контакт по его идентификатору.

Чтобы получить список компаний, привязанных к контакту, используйте метод crm.contact.company.items.get.

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

Название
тип
Описание
id*
[integer][1]
Идентификатор контакта. Можно получить при помощи методов crm.contact.list или crm.contact.add

Примеры кода

Получить контакт с id = 23

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":23}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.contact.get
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":23,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.contact.get
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.contact.get',
    		{
    			id: 23,
    		}
    	);
    	
    	const result = response.getData().result;
    	result.error()
    		? console.error(result.error())
    		: console.info(result)
    	;
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $contactId = 123; // Example contact ID
        $contactResult = $serviceBuilder
            ->getCRMScope()
            ->contact()
            ->get($contactId);
        $itemResult = $contactResult->contact();
        print("ID: " . $itemResult->ID . PHP_EOL);
        print("Name: " . $itemResult->NAME . PHP_EOL);
        print("Last Name: " . $itemResult->LAST_NAME . PHP_EOL);
        print("Birthday: " . $itemResult->BIRTHDATE?->format(DATE_ATOM) . PHP_EOL);
        print("Created Date: " . $itemResult->DATE_CREATE->format(DATE_ATOM) . PHP_EOL);
        print("Modified Date: " . $itemResult->DATE_MODIFY->format(DATE_ATOM) . PHP_EOL);
    } catch (Throwable $e) {
        print("Error: " . $e->getMessage() . PHP_EOL);
    }
  • BX24.js
    BX24.callMethod(
        'crm.contact.get',
        {
            id: 23,
        },
        (result) => {
            result.error()
                ? console.error(result.error())
                : console.info(result.data())
            ;
        },
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.contact.get',
        [
            'ID' => 23
        ]
    );

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

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

HTTP-статус: 200

{
    "result": {
        "ID": "43",
        "POST": "Администратор",
        "COMMENTS": "\nПример комментария внутри контакта\n\n[B]Жирный текст[\/B]\n[I]Курсив[\/I]\n[U]Подчеркнутый[\/U]\n[S]Зачеркнутый[\/S]\n[B][I][U][S]Микс[\/S][\/U][\/I][\/B]\n\n[LIST]\n[*]Элемент списка #1\n[*]Элемент списка #2\n[*]Элемент списка #3\n[\/LIST]\n\n[LIST=1]\n[*]Нумерованный элемент списка #1\n[*]Нумерованный элемент списка #2\n[*]Нумерованный элемент списка #3\n[\/LIST]\n",
        "HONORIFIC": "HNR_RU_1",
        "NAME": "Иван",
        "SECOND_NAME": "Иванович",
        "LAST_NAME": "Иванов",
        "PHOTO": null,
        "LEAD_ID": null,
        "TYPE_ID": "PARTNER",
        "SOURCE_ID": "WEB",
        "SOURCE_DESCRIPTION": "*Дополнительно об источнике*",
        "COMPANY_ID": "12",
        "BIRTHDATE": "2001-11-11T02:00:00+02:00",
        "EXPORT": "N",
        "HAS_PHONE": "Y",
        "HAS_EMAIL": "Y",
        "HAS_IMOL": "N",
        "DATE_CREATE": "2024-08-15T10:38:21+02:00",
        "DATE_MODIFY": "2024-08-15T10:38:21+02:00",
        "ASSIGNED_BY_ID": "6",
        "CREATED_BY_ID": "1",
        "MODIFY_BY_ID": "1",
        "OPENED": "Y",
        "ORIGINATOR_ID": null,
        "ORIGIN_ID": null,
        "ORIGIN_VERSION": null,
        "FACE_ID": null,
        "LAST_ACTIVITY_TIME": "2024-08-15T10:38:21+02:00",
        "ADDRESS": null,
        "ADDRESS_2": null,
        "ADDRESS_CITY": null,
        "ADDRESS_POSTAL_CODE": null,
        "ADDRESS_REGION": null,
        "ADDRESS_PROVINCE": null,
        "ADDRESS_COUNTRY": null,
        "ADDRESS_LOC_ADDR_ID": null,
        "UTM_SOURCE": "yandex",
        "UTM_MEDIUM": "CPC",
        "UTM_CAMPAIGN": "summer_sale",
        "UTM_CONTENT": "header_banner",
        "UTM_TERM": "discount",
        "PARENT_ID_1224": "12",
        "LAST_ACTIVITY_BY": "1",
        "UF_CRM_1720697698689": "Пример значения пользовательского поля с типом \u0022Строка\u0022",
        "PHONE": [
        {
            "ID": "156",
            "VALUE_TYPE": "WORK",
            "VALUE": "+7333333555",
            "TYPE_ID": "PHONE"
        },
        {
            "ID": "157",
            "VALUE_TYPE": "HOME",
            "VALUE": "+35599888666",
            "TYPE_ID": "PHONE"
        }
        ],
        "EMAIL": [
        {
            "ID": "158",
            "VALUE_TYPE": "MAILING",
            "VALUE": "ivanov@example.mailing",
            "TYPE_ID": "EMAIL"
        },
        {
            "ID": "159",
            "VALUE_TYPE": "WORK",
            "VALUE": "ivanov@example.work",
            "TYPE_ID": "EMAIL"
        }
        ]
    },
    "time": {
        "start": 1723736139.883652,
        "finish": 1723736140.299369,
        "duration": 0.41571712493896484,
        "processing": 0.14158892631530762,
        "date_start": "2024-08-15T17:35:39+02:00",
        "date_finish": "2024-08-15T17:35:40+02:00"
    }
}

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

Название
тип
Описание
result
contact
Корневой элемент ответа. Содержит информацию о полях контакта. Структура описана ниже
time
[time][1]
Объект, содержащий в себе информацию о времени выполнения запроса

contact

Название
тип
Описание
ID
[integer][1]
Идентификатор контакта
POST
[string][1]
Должность
COMMENTS
[text][1]
Комментарий
HONORIFIC
crm_status
Обращение
NAME
[string][1]
Имя
SECOND_NAME
[string][1]
Отчество
LAST_NAME
[string][1]
Фамилия
PHOTO
[file][1]
Фотография
LEAD_ID
crm_lead
Идентификатор лида, на основе которого был создан контакт
TYPE_ID
crm_status
Тип контакта
SOURCE_ID
crm_status
Источник
SOURCE_DESCRIPTION
[text][1]
Дополнительно об источнике
COMPANY_ID
crm_company
Идентификатор основной компании
BIRTHDATE
[date][1]
Дата рождения
EXPORT
[boolean][1]
Участвует ли в экспорте контактов. Возможные значения:
— Y — да
— N — нет
HAS_PHONE
[boolean][1]
Задан ли телефон. Возможные значения:
— Y — да
— N — нет
HAS_EMAIL
[boolean][1]
Задан ли e-mail. Возможные значения:
— Y — да
— N — нет
HAS_IMOL
[boolean][1]
Задана ли открытая линия. Возможные значения:
— Y — да
— N — нет
DATE_CREATE
[datetime][1]
Дата создания
DATE_MODIFY
[datetime][1]
Дата изменения
ASSIGNED_BY_ID
[user][1]
Ответственный
CREATED_BY_ID
[user][1]
Кем создан
MODIFY_BY_ID
[user][1]
Кем изменен
OPENED
[boolean][1]
Доступно ли для всех. Возможные значения:
— Y — да
— N — нет
FACE_ID
[integer][1]
Привязка к лицам из модуля faceid
LAST_ACTIVITY_TIME
[datetime][1]
Последняя активность
LAST_ACTIVITY_BY
[user][1]
Кем осуществлена последняя активность в таймлайне
UTM_SOURCE
[string][1]
Рекламная система (Yandex-Direct, Google-Adwords и другие)
UTM_MEDIUM
[string][1]
Тип трафика. Возможные значения:
— CPC — объявления
— CPM — баннеры
UTM_CAMPAIGN
[string][1]
Обозначение рекламной кампании
UTM_CONTENT
[string][1]
Содержание кампании. Например, для контекстных объявлений
UTM_TERM
[string][1]
Условие поиска кампании. Например, ключевые слова контекстной рекламы
PHONE
crm_multifield[]
Телефон
EMAIL
crm_multifield[]
E-mail
WEB
crm_multifield[]
Сайт
IM
crm_multifield[]
Мессенджер
LINK
crm_multifield[]
Ссылки. Служебное поле

Поля связи с внешними источниками данных

Если контакт создан внешней системой, то:

  • поле ORIGINATOR_ID хранит строковый идентификатор этой системы
  • поле ORIGIN_ID хранит строковый идентификатор контакта в этой внешней системе
  • поле ORIGIN_VERSION хранит версию данных контакта в этой внешней системе
Название
тип
Описание
ORIGINATOR_ID
[string][1]
Внешний источник
ORIGIN_ID
[string][1]
Идентификатор элемента во внешнем источнике
ORIGIN_VERSION
[string][1]
Версия оригинала

Устаревшие поля

Поля адреса в контакте являются устаревшими и используются только в режиме совместимости. Для работы с адресом используйте реквизиты.

Название
тип
Описание
ADDRESS
[string][1]
Адрес
ADDRESS_2
[string][1]
Вторая строка адреса
ADDRESS_CITY
[string][1]
Город
ADDRESS_POSTAL_CODE
[string][1]
Почтовый индекс
ADDRESS_REGION
[string][1]
Район
ADDRESS_PROVINCE
[string][1]
Область
ADDRESS_COUNTRY
[string][1]
Страна
ADDRESS_LOC_ADDR_ID
[integer][1]
Идентификатор адреса местоположения

Поля типа crm_multifield (PHONE, EMAIL, WEB, IM, LINK) явно отдаются данным методом только в случае, если значения данного поля не равны null.

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

HTTP-статус: 400

{
    "error": "",
    "error_description": "ID is not defined or invalid."
}

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

ОписаниеЗначение
ID is not defined or invalidПараметр id не передан либо переданное значение не является целым числом больше 0
Access deniedУ пользователя нет прав на «Чтение» контакта
Not foundКонтакт с переданным id не найден
  • [](./crm-contact-add)
  • [](./crm-contact-update)
  • [](./crm-contact-list)
  • [](./crm-contact-delete)
  • [](./crm-contact-fields)
  • [](../../../tutorials/crm/how-to-edit-crm-objects/how-to-change-email-or-phone)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-activity-to-contact)
  • [](../../../tutorials/crm/how-to-add-crm-objects/how-to-send-email)

[1]: ../../data-types.md

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

Практические рекомендации:

  • При написании кастомных компонентов для «Получить контакт по Id crm.contact.get» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

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

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

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

Related Post

Получить описание режимов работы CRM crm.enum.settings.modeПолучить описание режимов работы CRM crm.enum.settings.mode

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить описание режимов работы CRM crm.enum.settings.mode», разберем архитектурные

Как использовать $APPLICATION->ShowProperty() в 1С-Битрикс: пример кодаКак использовать $APPLICATION->ShowProperty() в 1С-Битрикс: пример кода

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать $APPLICATION->ShowProperty() в 1С-Битрикс: пример кода», проанализируем

Как сделать очередь с помощью javascript и phpКак сделать очередь с помощью javascript и php

Очередь — это структура данных, которая представляет собой список элементов, в котором добавление новых элементов происходит в конце списка, а удаление элементов — в начале списка.  Очередь работает по принципу