Bitrix24 api php пример

Как использовать примеры

Использование REST API позволяет достаточно просто решать многие задачи интеграции внешних источников или систем с Битрикс24, переносить в Битрикс24 данные и многое другое. Мы постарались дать примеры для наиболее частых задач, которые вы можете использовать в качестве заготовок и модифицировать под свои нужды.

Все примеры в разделе написаны с использованием PHP, поэтому вам нужно размещать этот код на доступном для вас сервере с соблюдением следующих технических условий:

  1. Примеры используют модуль cURL для выполнения REST-запросов. Узнайте, как включить модуль cURL на своем сервере.
  2. На вашем веб-сервере должен быть установлен валидный SSL-сертификат.
  3. Примеры используют базовый SDK В начале файла crest.php есть обозначение версии: @version 1.1, 1.2 . 1.10. Рекомендуется периодически скачивать файл и проверять наличие новой версии SDK в виде класса CRest для выполнения запросов и продления токенов авторизации. Возьмите код класса, внесите необходимые правки, связанные с авторизацией в файл settings.php и разместите на своем сервере, вставив нужный вам пример из документации.
  4. При возникновении проблем с работой SDK вы можете открыть через браузер файл checkserver.php, который произведёт минимальную проверку настроек сервера для работы класса CRest.

Если в проекте используется класс CRest и кодировка отличается от utf8, то необходимо сделать 2 дополнительных действия:

  1. Открыть файлы из архива и изменить их кодировку на необходимую.
  2. В файле settings.php объявить константу C_REST_CURRENT_ENCODING . Например, если проект в кодировке windows-1251 константа выглядеть должна так: define(‘C_REST_CURRENT_ENCODING’,’windows-1251′); .
Читайте также:  Unpack in format python

Вариант 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-меток в соответствующих полях лида:

UTM-метки сохранены в лиде

Пример сообщения об ошибке

У нас в коде есть блок, который отвечает за вывод ошибок, вот он:

// если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result))

Давайте попробуем получить какую-нибудь ошибку. Например, укажем несуществующего пользователя в переменной $b24UserID:

$b24UserID = 999; // пользователя с таким ID не существует

Запустив код с неправильным ID пользователя, мы получим следующее сообщение:

Ошибка при сохранении лида: Invalid request credentials

А в ячейке $result[‘error’] будет храниться код ошибки, в данном случае INVALID_CREDENTIALS.

Возможно, это поможет кому-то при дебаге.

Источник

Оцените статью