Битрикс24 глазами интегратора

Как заставить REST-интеграции работать на тестовом контуре Битрикс24

На сегодня одновременная работа REST-приложений на двух порталах с одним лицензионным ключом стандартно не предусмотрена.

Почему так?
Лицензия привязывается к домену портала на стороне OAuth-сервиса вендора. И стандартно одновременная работа REST-приложений на боевом и тестовом портале с одним ключом не поддерживается. Конечно, у Битрикс24 это уже в планах, но пока что можно обойтись временным решением.

Чтобы REST-интеграции на тестовом портале заработали корректно:

1. Заходим на тестовый портал под администратором.
2. Переходим: Административный раздел → Настройки → Инструменты → PHP-командная строка.
3. Выполняем этот код:

\Bitrix\Main\Loader::includeModule(’rest’);

$oldClientId = \Bitrix\Main\Config\Option::get(’rest’, ’service_client_id’, null);
$oldClientSecret = \Bitrix\Main\Config\Option::get(’rest’, ’service_client_secret’, null);

print_r(’old service_client_id: «’ . $oldClientId . ’»’);
print_r(’old service_client_secret: «’ . $oldClientSecret . ’»’);

\Bitrix\Main\Config\Option::delete(’rest’, [’name’ => ’service_client_id’]);
\Bitrix\Main\Config\Option::delete(’rest’, [’name’ => ’service_client_secret’]);

try {
    \Bitrix\Rest\OAuthService::register();
    \Bitrix\Rest\OAuthService::getEngine()->getClient()->getApplicationList();
} catch(\Bitrix\Main\SystemException $e) {
    echo ’error register portal’;
    echo «\n <br> \n»;
}

$newClientId = \Bitrix\Main\Config\Option::get(’rest’, ’service_client_id’, null);
$newClientSecret = \Bitrix\Main\Config\Option::get(’rest’, ’service_client_secret’, null);

if (
    !is_null($oldClientId)
    && !is_null($oldClientSecret)
    && is_null($newClientId)
    && is_null($newClientSecret)
) {
    \Bitrix\Main\Config\Option::set(’rest’, ’service_client_id’, $oldClientId);
    \Bitrix\Main\Config\Option::set(’rest’, ’service_client_secret’, $oldClientSecret);
}


Что делает этот скрипт?
Он обновляет OAuth-привязку тестового портала на сервере https://oauth.bitrix.info. Дальше достаточно переустановить интеграционное приложение на тестовом портале и можно снова пробовать подключать интеграции. На боевом портале ничего не изменится — он продолжит работать как раньше.

Такой подход отлично подходит для тестирования. Но держите в голове — это временное решение. Если нужна стабильная работа двух контуров одновременно, лучше обсудить с вендором или интегратором варианты лицензирования.