487 слов | 3 минуты
Как создать приложение для 1С-Битрикс
Приложения в экосистеме Битрикс — это отдельные модули, которые расширяют функциональность Битрикс24 или сайта на Битрикс. Они могут добавлять новые виджеты, интеграции с внешними сервисами, автоматизировать процессы. В этой статье разберём как создать приложение с нуля.
Типы приложений
Перед началом важно понять какой тип приложения вам нужен.
Серверные приложения — работают на вашем сервере, общаются с Битрикс через REST API. Подходят для сложных интеграций, когда нужна своя бизнес-логика, база данных, очереди задач. Пользователь видит только интерфейс встроенный в Битрикс, сама логика скрыта.
Клиентские приложения — простые приложения на JavaScript без серверной части. Весь код выполняется в браузере. Подходят для несложных виджетов и небольших дополнений к интерфейсу.
Коробочные решения — модули для сайтов на 1С-Битрикс (не Битрикс24). Устанавливаются через Marketplace и расширяют функциональность CMS. Разрабатываются с использованием API Битрикс.
Для большинства интеграций с Битрикс24 используются серверные приложения через REST API — разберём их подробнее.
Регистрация в Битрикс Marketplace
Чтобы публиковать приложения официально, нужен аккаунт партнёра.
- Зайдите на marketplace.1c-bitrix.ru
- Зарегистрируйтесь как разработчик
- Создайте аккаунт компании или ИП
- Пройдите верификацию
Для тестирования и внутренних приложений регистрация в Marketplace не нужна — можно добавить приложение прямо в конкретный портал Битрикс24.
Создание приложения в Битрикс24
Для разработки и тестирования проще всего добавить приложение в свой тестовый портал.
- Откройте портал Битрикс24
- Перейдите в «Разработчикам» → «Другое» → «Приложения»
- Нажмите «Добавить приложение»
- Выберите тип: «Серверное» или «Клиентское»
- Заполните параметры:
- Название приложения
- URL обработчика (адрес вашего сервера)
- Начальная страница приложения
- Права доступа (scopes) — только те что реально нужны
После сохранения вы получите client_id и client_secret — они нужны для авторизации.
Авторизация через OAuth 2.0
Битрикс24 использует OAuth 2.0 для авторизации приложений. Схема работы:
- Пользователь устанавливает приложение и разрешает доступ
- Битрикс24 передаёт приложению
code - Приложение обменивает
codeнаaccess_tokenиrefresh_token access_tokenиспользуется в запросах к REST API- Когда
access_tokenистекает — обновляется черезrefresh_token
Получение токена
// Обмен code на токены
$response = file_get_contents(
'https://ВАШ-ПОРТАЛ.bitrix24.ru/oauth/token/?' . http_build_query([
'grant_type' => 'authorization_code',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'code' => $_GET['code'],
])
);
$token = json_decode($response, true);
// $token['access_token'] — токен для запросов
// $token['refresh_token'] — для обновления
// $token['expires_in'] — срок жизни в секундах
Обновление токена
$response = file_get_contents(
'https://ВАШ-ПОРТАЛ.bitrix24.ru/oauth/token/?' . http_build_query([
'grant_type' => 'refresh_token',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'refresh_token' => $savedRefreshToken,
])
);
$token = json_decode($response, true);
// Сохраните новые access_token и refresh_token
Храните токены в базе данных или защищённом хранилище. Никогда не записывайте их в код или git-репозиторий.
Структура серверного приложения
Минимальная структура приложения:
my-bitrix-app/
├── index.php # Точка входа, начальная страница
├── install.php # Обработчик установки (получение токена)
├── handler.php # Обработчик событий от Битрикс
├── api.php # Класс для работы с REST API
└── config.php # client_id, client_secret, настройки
Обработчик установки
<?php
// install.php — вызывается при установке приложения
require 'config.php';
if (isset($_GET['code'])) {
// Получаем токены
$url = 'https://' . $_GET['DOMAIN'] . '/oauth/token/?' . http_build_query([
'grant_type' => 'authorization_code',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'code' => $_GET['code'],
]);
$token = json_decode(file_get_contents($url), true);
// Сохраняем токен и домен портала
saveToken($_GET['DOMAIN'], $token);
echo 'Приложение успешно установлено.';
}
Запросы к REST API
<?php
// api.php — обёртка для запросов к REST API
function callBitrix(string $method, array $params, string $domain, string $accessToken): array
{
$url = 'https://' . $domain . '/rest/' . $method . '.json';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => array_merge($params, ['auth' => $accessToken]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Пример: получить список сделок
$deals = callBitrix('crm.deal.list', [
'filter' => ['STAGE_ID' => 'NEW'],
'select' => ['ID', 'TITLE', 'OPPORTUNITY'],
], $domain, $accessToken);
Права доступа (Scopes)
При создании приложения указывайте только нужные права — лишние права настораживают пользователей при установке.
Основные scopes:
| Scope | Что даёт |
|---|---|
crm |
Доступ к CRM: сделки, контакты, лиды |
task |
Задачи и группы |
disk |
Файлы и диск |
calendar |
Календарь и события |
user |
Данные пользователей |
telephony |
Телефония и звонки |
im |
Сообщения и чаты |
Обработка событий (Webhooks)
Приложение может подписываться на события в Битрикс24 — например, создание сделки или смена статуса задачи.
// Подписка на событие при установке
callBitrix('event.bind', [
'event' => 'ONCRMDEALADD',
'handler' => 'https://ВАШ-СЕРВЕР.ru/handler.php',
'auth_type' => 0,
], $domain, $accessToken);
<?php
// handler.php — обработчик события
$data = $_POST;
if ($data['event'] === 'ONCRMDEALADD') {
$dealId = $data['data']['FIELDS']['ID'];
// Ваша логика при создании сделки
}
Тестирование приложения
Для разработки удобно использовать ngrok — он создаёт публичный URL для вашего локального сервера:
ngrok http 8000
# Forwarding: https://abc123.ngrok.io -> localhost:8000
Укажите ngrok-адрес как URL обработчика в настройках приложения. Битрикс24 сможет обращаться к вашему локальному серверу.
Публикация в Marketplace
Когда приложение готово и протестировано:
- Войдите в личный кабинет партнёра на marketplace.1c-bitrix.ru
- Создайте карточку приложения: описание, скриншоты, категория
- Загрузите приложение или укажите URL
- Отправьте на модерацию — обычно занимает 3–5 рабочих дней
- После одобрения приложение появится в каталоге
Если разрабатываете внутреннее приложение только для своей компании — публикация в Marketplace не нужна. Достаточно добавить его в конкретный портал.
Если нужна помощь с разработкой или интеграцией — обратитесь к нам. Разработаем приложение под ваши задачи.