Модуль предоставляет простые классы и методы для взаимодействия с Клиентской базой через её апи.
Модуль доступен на Маркетплейсе Битрикса.
После установки на сайт, настройка производится в административной части: «Настройки» — «Настройки модулей» — «Клиентская база api».
На странице настроек необходимо ввести:
- имя сайта, на котором установлена Клиентская база (с http/https). Если КБ установлена на в корневую папку, то имя сайта следует ввести вместе с той папкой, в которую она устновлена;
- логин пользователя Клиентской базы, от лица и с правами которого будет осуществляться подключение;
- api-ключ этого пользвателя.
Для пользователя, под которым вы ходите подключиться, в настройках КБ должна стоять галочка "Включить API".
Если все данные верны, то после сохранения настроек появится надпись [есть подключение]. После этого можно обращаться к Клиентской базе с помощью классов и методов модуля.
Модуль реализует все возможности, доступные в апи Клиентской базы на апрель 2018 года.
Взаимодействие с Клиентской базой возможно как с помощью классов сущностей, так и с помощью основного класса \Rover\CB\Rest. Классы сущностей являются обёрткой над \Rover\CB\Rest и реализуют более удобные методы для доступа к конкретным сущностям КБ.
Классы сущностей расположены в пространстве имён \Rover\CB\Rest\. Их методы практически идентичны аналогичным методам апи КБ.
Получение списка пользователей с помощью класса Rover\CB\Rest\User:
use Bitrix\Main\Loader;
use Rover\CB\Rest\User;
if (Loader::includeModule('rover.cb')) {
try{
$users = User::getInstance()->getList();
echo '<pre>';
print_r($users);
echo '</pre>';
} catch (\Exception $e){
ShowError($e->getMessage());
}
} else {
ShowError("Не удалось подключить модуль «Клиентская база api»");
}
Результат будет примерно таким:
Array
(
[data] => Array
(
[1] => Array
(
[id] => 1
[fio] => ...
[group_id] => 1
[arc] => 0
)
[10] => Array
(
[id] => 10
[fio] => ...
[group_id] => 1
[arc] => 0
)
...
)
[count] => 5
[code] => 0
[message] => Done
)
Вместо Rover\CB\Rest\User::getInstance()->getList() можно использовать \Rover\CB\Rest::getInstance()->requestPost('/api/user/get_list/'). Вообще, с помощью класса \Rover\CB\Rest можно обратиться ко всем методам апи Клисентской базы, в т.ч. и к тем, которые могут быть еще не реализованы в классах сущностей.
\Rover\CB\Rest — Основной универсальный класс.
static getInstance()— авторизуется в КБ и получает экземпляр класса\Rover\CB\Rest;requestPost($url, array $data = array())— post-запрос к КБrequestGet($url, array $data = array())— get-запрос к КБrequest($method, $url, array $data = array())— запрос к КБ. Метод определяется переменной$method
Классы сущностей реализуют все методы \Rover\CB\Rest, за тем исключением, что static getInstance() возвращает экземпляр вызвавшего её класса.
Методы классов сущностей принимают те же параметры и в том же порядке, что и соответствующин методы апи КБ, кроме параметра access_id: он не нужен. Структура возвращаемых данных идентична структуре в КБ. Более детальную информацию можно прочесть в справке по апи КБ.
\Rover\CB\Rest\Data — Работа с данными в таблицах.
create($tableId, $cals = true, array $data = array())— /api/data/create;read($tableId, $cals = true, array $fields = array(), array $filter = array(), array $sort = array(), $start = 0, $limit = 500)— /api/data/read;update($tableId, $cals = true, array $data = array(), array $filter = array())— /api/data/update;delete($tableId, $cals = true, array $filter = array())— /api/data/delete;files($tableId, $fileFieldId, $lineId, $fileName)— /api/data/files.
\Rover\CB\Rest\DataLine, \Rover\CB\Rest\DataRow - вспомогательные классы для \Rover\CB\Rest\Data. Реализуют те же методы за тем отличием, что в массивах данных, фильтра и сортировки не надо указывать ключи line и row соотвественно.
\Rover\CB\Rest\Group — Работа с группами.
getList(array $filter = array())* — /api/group/get_list.
\Rover\CB\Rest\Table — Работа с таблицами.
getList(array $filter = array())* — /api/table/get_list;getPerms($id)— /api/table/get_perms;getInfo($id)— /api/table/info.
\Rover\CB\Rest\User — Работа с пользователями.
getList(array $filter = array())* — /api/user/get_list
* в массиве $filter можно передать данные для фильтрации результата в формате array('filterKey' => 'filterValue'). Например: array('id' => 22), тогда в результате останется только запись с id=22. Фильтр работает только по точному соответствию. Других операций не предусмотренно.
- php 5.3 или выше;
- модуль php CURL;
- «Конструктор административной части» (rover.fadmin) 1.6.9 или выше.
По всем вопросам вы можете связаться со мной по email: rover.webdev@gmail.com, либо через форму на сайте https://rover-it.me.