Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

Углубленное изучение Битрикс
  • Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

    Антон Долганин 21 Июля 2016 9:50 2912
    К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

    Screenshot_1.png


    Если у вас магазин уже подключен к коробке (не обязательно он должен быть подключен на автоматическом запуске, и я больше скажу - для "кустарного" способа коннекта ниже он вообще может не быть магазином), то обращение к такому сайту сводится к нескольким строчкам кода:
    if (\Bitrix\Main\Loader::includeModule('crm')) {
       $proxy = new \CCrmExternalSaleProxy(3);
       if ($proxy->IsInitialized()) {
          $request = array(
             'METHOD' => 'GET',
             'PATH' => '/ajax/test.php',
             'HEADERS' => array(),
             'BODY' => array()
          );
          $response = $proxy->Send($request);
          echo $response['BODY'];
       }
    }


    На второй строчке вы видите айди магазина со скриншота. Обращение будет идти на PATH удаленного магазина. Также вы можете поменять метод отправки, заголовки. Нутри метода доступны здесь.

    Немного о параметре BODY. Если  METHOD равен POST, то в BODY можно передать массив параметров, которые на приемники прилетят в POST-данных.

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

    Подчеркну - идет именно авторизация на сайте БУС под указанным логином. То есть, лучше не передавать на авторизацию какие-то УРЛ от пользователя - их лучше контролировать в ваших скриптах.
Александр
21 Июля 2016 11:35
А можно так же обратится с сайта на crm?
Антон Долганин
21 Июля 2016 12:18
В коробке скоро будет REST.  По нему будет возможность общаться согласно API http://dev.1c-bitrix.ru/rest_help/index.php

Там конечно вроде как нельзя совершенно любые команды слать, но я уже запросил разработчиков, чтобы дали возможность расширять набор команд своими силами.
Антон Долганин
21 Июля 2016 13:21
Битрикс ответил, что возможность расширения будет тоже. На практике это означает, что вы можете настроить общение со стороны магазина по REST и не задумываться о дополнительной авторизации и безопасности. А на стороне КП реализовать поддержку новых команд.
Александр
21 Июля 2016 14:46
Ух порадовали, как раз пилим свой костыль для этой задачи. Хорошо бы еще знать когда это скоро, а то у Битрикс время относительная величина. Корсика презентовали полтора месяца назад, а обновы так и не прилетели.
Антон Долганин
21 Июля 2016 15:05
Модуль rest выгружен в систему обновлений, привязан ко всем лицензиям, где есть модуль intranet. Нужно еще ставить обновление intranet 16.6.4 (бета). И не забыть инсталлировать новый модуль rest в списке модулей. Позже, когда будет первый фидбек, поставим всем его автоматом.
У меня уже доступен.

Но понятно все сыроватое будет пока.