487 слов | 3 минуты

Как создать приложение для 1С-Битрикс

Приложения в экосистеме Битрикс — это отдельные модули, которые расширяют функциональность Битрикс24 или сайта на Битрикс. Они могут добавлять новые виджеты, интеграции с внешними сервисами, автоматизировать процессы. В этой статье разберём как создать приложение с нуля.

Типы приложений

Перед началом важно понять какой тип приложения вам нужен.

Серверные приложения — работают на вашем сервере, общаются с Битрикс через REST API. Подходят для сложных интеграций, когда нужна своя бизнес-логика, база данных, очереди задач. Пользователь видит только интерфейс встроенный в Битрикс, сама логика скрыта.

Клиентские приложения — простые приложения на JavaScript без серверной части. Весь код выполняется в браузере. Подходят для несложных виджетов и небольших дополнений к интерфейсу.

Коробочные решения — модули для сайтов на 1С-Битрикс (не Битрикс24). Устанавливаются через Marketplace и расширяют функциональность CMS. Разрабатываются с использованием API Битрикс.

Для большинства интеграций с Битрикс24 используются серверные приложения через REST API — разберём их подробнее.

Регистрация в Битрикс Marketplace

Чтобы публиковать приложения официально, нужен аккаунт партнёра.

  1. Зайдите на marketplace.1c-bitrix.ru
  2. Зарегистрируйтесь как разработчик
  3. Создайте аккаунт компании или ИП
  4. Пройдите верификацию

Для тестирования и внутренних приложений регистрация в Marketplace не нужна — можно добавить приложение прямо в конкретный портал Битрикс24.

Создание приложения в Битрикс24

Для разработки и тестирования проще всего добавить приложение в свой тестовый портал.

  1. Откройте портал Битрикс24
  2. Перейдите в «Разработчикам»«Другое»«Приложения»
  3. Нажмите «Добавить приложение»
  4. Выберите тип: «Серверное» или «Клиентское»
  5. Заполните параметры:
    • Название приложения
    • URL обработчика (адрес вашего сервера)
    • Начальная страница приложения
    • Права доступа (scopes) — только те что реально нужны

После сохранения вы получите client_id и client_secret — они нужны для авторизации.

Авторизация через OAuth 2.0

Битрикс24 использует OAuth 2.0 для авторизации приложений. Схема работы:

  1. Пользователь устанавливает приложение и разрешает доступ
  2. Битрикс24 передаёт приложению code
  3. Приложение обменивает code на access_token и refresh_token
  4. access_token используется в запросах к REST API
  5. Когда 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

Когда приложение готово и протестировано:

  1. Войдите в личный кабинет партнёра на marketplace.1c-bitrix.ru
  2. Создайте карточку приложения: описание, скриншоты, категория
  3. Загрузите приложение или укажите URL
  4. Отправьте на модерацию — обычно занимает 3–5 рабочих дней
  5. После одобрения приложение появится в каталоге

Если разрабатываете внутреннее приложение только для своей компании — публикация в Marketplace не нужна. Достаточно добавить его в конкретный портал.

Если нужна помощь с разработкой или интеграцией — обратитесь к нам. Разработаем приложение под ваши задачи.