- Как использовать примеры
- Вариант 1. Вызов REST с использованием входящего вебхука
- Вариант 2. Вызов REST из локального приложения
- Вариант 3. Вызов REST из тиражного приложения
- Bitrix24 api php пример
- Начальные требования к подготовке
- Баллы опыта
- Комментарии к урокам
- Создаем лид в Битрикс24 через API
- Введение
- Создание вебхука
- Пример 1: передаем имя и телефон
- Пример 2: передаем пользовательские свойства
- Пример 3: передаем UTM-метки
- Пример сообщения об ошибке
Как использовать примеры
Использование REST API позволяет достаточно просто решать многие задачи интеграции внешних источников или систем с Битрикс24, переносить в Битрикс24 данные и многое другое. Мы постарались дать примеры для наиболее частых задач, которые вы можете использовать в качестве заготовок и модифицировать под свои нужды.
Все примеры в разделе написаны с использованием PHP, поэтому вам нужно размещать этот код на доступном для вас сервере с соблюдением следующих технических условий:
- Примеры используют модуль cURL для выполнения REST-запросов. Узнайте, как включить модуль cURL на своем сервере.
- На вашем веб-сервере должен быть установлен валидный SSL-сертификат.
- Примеры используют базовый SDK В начале файла crest.php есть обозначение версии: @version 1.1, 1.2 . 1.10. Рекомендуется периодически скачивать файл и проверять наличие новой версии SDK в виде класса CRest для выполнения запросов и продления токенов авторизации. Возьмите код класса, внесите необходимые правки, связанные с авторизацией в файл settings.php и разместите на своем сервере, вставив нужный вам пример из документации.
- При возникновении проблем с работой SDK вы можете открыть через браузер файл checkserver.php, который произведёт минимальную проверку настроек сервера для работы класса CRest.
Если в проекте используется класс CRest и кодировка отличается от utf8, то необходимо сделать 2 дополнительных действия:
- Открыть файлы из архива и изменить их кодировку на необходимую.
- В файле settings.php объявить константу C_REST_CURRENT_ENCODING . Например, если проект в кодировке windows-1251 константа выглядеть должна так: define(‘C_REST_CURRENT_ENCODING’,’windows-1251′); .
Вариант 1. Вызов REST с использованием входящего вебхука
'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '';
Вариант 2. Вызов REST из локального приложения
'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '';
'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '';
Вариант 3. Вызов REST из тиражного приложения
'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '';
'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '';
Bitrix24 api php пример
В данном курсе представлены базовые понятия о приложениях для коробочной и облачной версий Битрикс24, подробно рассмотрен процесс разработки локальных и тиражных приложений, а также даны общие рекомендации для разработчиков готовых решений и интеграций.
Внимание! С 1 января 2021 года использование приложений Битрикс24.Маркет, REST API и вебхуков (локальные интеграции в разделе «Разработчикам») будет доступно только на коммерческих тарифах Битрикс24.
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством работы с собственными приложениями для Битрикс24 необходимо владеть (хотя бы на начальном уровне):
Важно! Для удобства пользователей ваших сервисов рекомендуется при создании приложений использовать однотипное оформление, близкое к стандартным интерфейсам.
Курс учебный, контрольные тесты и сертификация по нему не предусмотрены.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, добавляем новые уроки. Поэтому итоговое количество баллов курса и количество набранных вами баллов могут различаться между собой. Набранные вами баллы, в отличие от суммы баллов курса, не пересчитываются. Не переживайте!
Отличный результат — это если общее число набранных вами баллов отличается от максимального на несколько процентов.
Комментарии к урокам
На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой: |
Следить за изменениями в документации можно с помощью страницы Что нового?, либо подпиской на канал в Телеграмме, а также в блоге Отдела документации.
Существует специальный портал для разработчиков приложений. На нём вы можете задать вопросы более опытным разработчикам, обсудить нюансы и тонкости работы технологии REST.
Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Создаем лид в Битрикс24 через API
В Битрикс24 обновился процесс создания вебхуков, поэтому данная статья частично потеряла свою актуальность. Вот ссылка на новую статью, там подготовлена актуальная информация по созданию вебхука, а также есть ссылка на библиотеку, с помощью которой можно отправлять лиды намного проще.
Введение
У Битрикс24 есть API, который позволяет делать определенные полезные штуки. Одна из них – отправка лида в CRM. Т.е. мы можем запрограммировать отправку данных из любой формы своего сайта в свой Битрикс24. Супер! Разберемся, как это сделать.
Создание вебхука
Прежде всего, в рамках Битрикс24 нужно создать вебхук, в который мы будем отправлять данные с сайта. В Битрикс24 в левом меню переходим в раздел Приложения, идем на вкладку Вебхуки, жмем кнопку Добавить вебхук, в подменю выбираем Входящий вебхук:
Открылась форма добавления вебхука. В поле Название вводим произвольное название, например Получение лидов с сайта. Поле Описание заполняем по своему желанию. В списке Права доступа отмечаем чекбокс CRM:
Больше ничего отмечать не нужно, нажимаем кнопку Сохранить (находится под списком прав доступа):
Перед нами открывается страница с кодом вебхука:
Сохраните этот код, он понадобится нам далее. Код никому не показывайте, это конфиденциальная информация.
Пример 1: передаем имя и телефон
В целях экономии вашего времени, во всех примерах я приведу только код отправки данных в CRM. Как привязать его к своей форме — вы точно знаете.
Начнем с самого простого примера: передадим в CRM имя и номер телефона:
array( "TITLE" => "Лид с нашего сайта", // название лида "NAME" => "Меган Фокс", // имя ;) "PHONE" => array( // телефон в Битрикс24 = массив, поэтому даже если передаем 1 номер, то передаем его в таком формате "n0" => array( "VALUE" => "+7 (123) 456-78-99", // ненастоящий номер Меган Фокс "VALUE_TYPE" => "MOBILE", // тип номера = мобильный ), ), ), 'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид. )); // отправляем запрос в Б24 и обрабатываем ответ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryURL, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result,1); // если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result)) < die("Ошибка при сохранении лида: ".$result['error_description']); >echo "Лид добавлен, отличная работа :)"; ?>
Комментарии добавил прямо в код, думаю вопросов быть не должно. Если запустим этот код — в Битрикс24 появится уведомление о создании нового лида:
В CRM зайдем в лид и увидим всю информацию, которую мы передали:
Супер! В примере мы заполнили только Название лида, Имя и Номер телефона. Но в CRM Б24 доступно намного больше полей. Их список можно посмотреть в документации по ссылке: https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php — обязательно ознакомьтесь с этой табличкой.
Пример 2: передаем пользовательские свойства
Немного дополним наш пример, передадим значения двух пользовательских полей. Предположим, что в CRM у нас есть поле Ждет звонка типа Да/Нет (содержит информацию о том, нужно ли перезвонить этому клиенту). И поле Дополнительное сообщение типа Строка, в котором мы передаем сообщение, оставленное пользователем:
Нам нужно получить коды этих свойств. Узнать их можно через просмотр кода элемента. Вот код нашего первого свойства:
Добавим их в наш код и получим следующее:
array( "TITLE" => "Лид с нашего сайта", // название лида "NAME" => "Меган Фокс", // имя ;) "PHONE" => array( // телефон в Битрикс24 = массив, поэтому даже если передаем 1 номер, то передаем его в таком формате "n0" => array( "VALUE" => "+7 (123) 456-78-99", // ненастоящий номер Меган Фокс "VALUE_TYPE" => "MOBILE", // тип номера = мобильный ), ), "UF_CRM_1575410143732" => true, // первое пользовательское свойство: передадим "Да" "UF_CRM_1575410440471" => "Перезвони :*", // второе пользовательское свойство, передаем этот текст ), 'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид. )); // отправляем запрос в Б24 и обрабатываем ответ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryURL, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result,1); // если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result)) < die("Ошибка при сохранении лида: ".$result['error_description']); >echo "Лид добавлен, отличная работа :)"; ?>
Как видим, пользовательские свойства передаются точно так же, как и обычные поля. Результат в CRM выглядит следующим образом:
Пользовательские поля корректно сохранились в Битрикс24.
Пример 3: передаем UTM-метки
Передача UTM-меток ничем не отличается от передачи обычных полей. Но я решил вынести этот пример в отдельный блок, т.к. в свое время сам не знал о существовании специальных полей для UTM-меток в CRM Битрикс24. А они есть, это следующие поля:
UTM_SOURCE UTM_MEDIUM UTM_CAMPAIGN
Дополним наш код исходя из этой информации: вытянем UTM-метки из урла и отправим их в лид:
array( "TITLE" => "Лид с нашего сайта", // название лида "NAME" => "Меган Фокс", // имя ;) "PHONE" => array( // телефон в Битрикс24 = массив, поэтому даже если передаем 1 номер, то передаем его в таком формате "n0" => array( "VALUE" => "+7 (123) 456-78-99", // ненастоящий номер Меган Фокс "VALUE_TYPE" => "MOBILE", // тип номера = мобильный ), ), "UF_CRM_1575410143732" => true, // первое пользовательское свойство: передадим "Да" "UF_CRM_1575410440471" => "Перезвони :*", // второе пользовательское свойство, передаем этот текст "UTM_SOURCE"=>$params["utm_source"], "UTM_MEDIUM"=>$params["utm_medium"], "UTM_CAMPAIGN"=>$params["utm_campaign"], ), 'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид. )); // отправляем запрос в Б24 и обрабатываем ответ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryURL, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result,1); // если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result)) < die("Ошибка при сохранении лида: ".$result['error_description']); >echo "Лид добавлен, отличная работа :)"; ?>
Отправим лид со страницы со следующим набором значений в урле:
?utm_medium=cpc&utm_source=Yandex&utm_campaign=AlfavitkaDemo
В итоге получим этот набор UTM-меток в соответствующих полях лида:
Пример сообщения об ошибке
У нас в коде есть блок, который отвечает за вывод ошибок, вот он:
// если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result))
Давайте попробуем получить какую-нибудь ошибку. Например, укажем несуществующего пользователя в переменной $b24UserID:
$b24UserID = 999; // пользователя с таким ID не существует
Запустив код с неправильным ID пользователя, мы получим следующее сообщение:
Ошибка при сохранении лида: Invalid request credentials
А в ячейке $result[‘error’] будет храниться код ошибки, в данном случае INVALID_CREDENTIALS.
Возможно, это поможет кому-то при дебаге.