Как использовать примеры
Описание
Использование 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 с использованием входящего вебхука
- Укажите URL вебхука в define
C_REST_WEB_HOOK_URL
в файле settings.php:<? define('C_REST_WEB_HOOK_URL','https://xxx.bitrix24.ru/rest/1/douasdqkjxgc3mgc1/');
- Вставьте текст примера в файл index.php:
<? require_once('crest.php'); // put an example below echo '<PRE>'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '</PRE>';
- Укажите URL к примеру в адресной строке браузера https://mydomain.xxx/index.php, чтобы увидеть результат работы примера.
Вариант 2. Вызов REST из локального приложения
- В файле settings.php:
<? define('C_REST_CLIENT_ID','app.87816165165.35984727'); define('C_REST_CLIENT_SECRET','g5dlcj3d2772h8g5jhzou907jojage');
- Вставьте текст примера в файл index.php:
<? require_once('crest.php'); // put an example below echo '<PRE>'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '</PRE>';
- В карточке локального приложения укажите URL своего приложения https://mydomain.xxx/index.php и URL скрипта установки https://mydomain.xxx/install.php.
- Укажите значения параметров client_id и client_secret для авторизации OAuth 2.0 в define
C_REST_CLIENT_ID
иC_REST_CLIENT_SECRET
в файле settings.php, взяв эти значения из карточки локального приложения.<? require_once('crest.php'); // put an example below echo '<PRE>'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '</PRE>';
- В списке локальных приложений нажмите правой кнопкой мыши на своё локальное приложение и выберите пункт "Переустановить". Это нужно чтобы корректно сработал install.php после того, как вы вставили корректные значения C_REST_CLIENT_ID и C_REST_CLIENT_SECRET.
- После установки вы увидите результат работы примера. Если пример демонстрирует встраивание виджетов в другие инструменты Битрикс24, необходимо перейти в эти инструменты.
Вариант 3. Вызов REST из тиражного приложения
- В файле settings.php:
<? define('C_REST_CLIENT_ID','app.87816165165.35984727'); define('C_REST_CLIENT_SECRET','g5dlcj3d2772h8g5jhzou907jojage');
- Вставьте текст примера в файл index.php
<? require_once('crest.php'); // put an example below echo '<PRE>'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '</PRE>';
- Добавьте тиражное приложение в партнерском кабинете для получения client_id и client_secret и при сохранении приложения.
- Укажите значения параметров client_id и client_secret для авторизации OAuth 2.0 в define
C_REST_CLIENT_ID
иC_REST_CLIENT_SECRET
в файле settings.php.
<? require_once('crest.php'); // put an example below echo '<PRE>'; print_r(CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'Название лида',//Заголовок*[string] 'NAME' => 'Имя',//Имя[string] 'LAST_NAME' => 'Фамилия',//Фамилия[string] ] ]) ); echo '</PRE>';
- В карточке приложения добавьте версию и укажите URL своего приложения https://mydomain.xxx/index.php и URL скрипта установки https://mydomain.xxx/install.php в карточке версии.
- После сохранения версии откройте карточку версии и, нажав на ссылку "Установить на своем Битрикс24", установите свое приложение на любой доступный вам Битрикс24.
- После установки вы увидите результат работы примера (в случае, если пример демонстрирует встраивание виджетов в другие инструменты Битрикс24, необходимо перейти в эти инструменты).
- Для реального тиражного приложения необходимо пронаследовать класс CRest, переопределив методы getSettingData/setSettingData, которые занимается получением/сохранением токенов авторизации в текстовый файл. Эти методы не предназначены для эксплуатации приложения на нескольких Битрикс24 одновременно.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.