business-ru / business-online-sdk-php
SDK для работы с API Бизнес.Ру
Installs: 1 400
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 3
Open Issues: 0
Requires
- php: >=7.3
- ext-curl: *
- ext-json: *
- psr/http-client: ^1.0
- psr/log: ^1.1
- psr/simple-cache: ^1.0
This package is auto-updated.
Last update: 2025-02-28 11:44:44 UTC
README
https://api-online.class365.ru
Требования:
PHP 7.3 (и выше)
Установка:
В консоли с помощью Composer
-
Установите пакетный менеджер Composer в папке вашего проекта, если до этого момента он еще не был установлен.
-
В консоли выполните команду
composer require business-ru/business-online-sdk-php
Либо
- В файле composer.json своего проекта
Добавьте строку "business-ru/business-online-sdk-php": "*" в список зависимостей вашего проекта в файле composer.json
"require": { "business-ru/business-online-sdk-php": "*" }
- Обновите зависимости проекта. В консоли перейдите в каталог, где лежит composer.json, и выполните команду:
composer update
Начало работы:
Создайте объект для работы с API:
$api = new \bru\api\Client($account, $app_id, $secret, $sleep, $cache, $http);
При создании обьекта ему передаются параметры:
- $account - Имя аккаунта. Например для работы с API https://a13344.business.ru/ это a13344. Данный параметр является обязательным.
- $app_id - ID интеграции. Представляет собой набор цифр, который выдается при создании интеграции. Данный параметр является обязательным.
- $secret - Секретный ключ. Представляет собой набор символов, который выдается при создании интеграции. Длина - 32 символа. Данный параметр является обязательным.
- $sleep - При превышении количества запросов включение данной функции даст возможность ожидать сброса лимита и продолжить выполнение запросов к API. true - Включить функцию false - Отключить функцию (По умолчанию) Данный параметр не является обязательным.
- $cache - Библиотека использует кеширование для хранения токенов. Если вы хотите чтобы использовался ваш кэш, в качестве параметра нужно передать объект, реализующий интерфейс CacheInterface (PSR-16). По умолчанию библиотека использует встроенный кэш. Данный параметр не является обязательным.
- $http - Если вы хотите использовать свой HTTP - клиент для запросов к API, в качестве параметра нужно передать объект, реализующий интерфейс ClientInterface (PSR-18). По умолчанию библиотека использует встроенный HTTP - клиент. Данный параметр не является обязательным.
Запросы к API реализуются путем вызова методов у данного обьекта.
Запросы:
Запрос к API может быть выполнен двумя способами:
- с помощью метода request
- c помощью метода requestAll
Request($method, $model, $params)
$method - Метод запроса
Поддерживаются 4 метода запроса:
- get - Запрос на получение записи
- post - Запрос на создание записи
- put - Запрос на изменение записи
- delete - Запрос на удаление записи
Не все модели поддерживают все методы.
Подробнее о методах запроса можно узнать на сайте документации.
$model - Модель
Модель - требуется для указания типа данных для работы Все поддерживаемые модели можно узнать на сайте документации.
$params - Параметры запроса
Параметры запроса нужны для указания конкретного документа, сортировки, условий выборки и т.д. Возможные параметры можно узнать на сайте документации.
RequestAll($model, $params)
В отличии от предыдущего метода, данный метод выполняет только get запросы, но в ответе можно получить неограниченное количество данных (ограничение запросов в 250 записей не действует). Время выполнения данного метода может занимать длительное время. Если при создании данного объекта был передан параметр $sleepy равный true, то даже при превышении лимита запросов метод будет продолжать работу до тех пор, пока не получит все записи.
$model - Модель
Модель - требуется для указания типа данных для работы Все поддерживаемые модели можно узнать на сайте документации.
$params - Параметры запроса
Параметры запроса нужны для указания конкретного документа, сортировки, условий выборки и т.д. Возможные параметры можно узнать на сайте документации.
Работа с веб-хуками
Для работы с веб - хуками у созданного обьекта есть специальный метод - checkNotification()
При сравбатываниии веб - хука вы можете вызвать этот метод для проверки подлинности уведомления.
Метод возвращает true если событие прошло проверку, в противном случае вернет false
В случае если вам нужен функционал только проверки подлинности хуков, возможно не создавать обьект, а вызвать статичный метод Client::check($app_id, $secret)
Параметры:
- $app_id - ID интеграции. Представляет собой набор цифр, который выдается при создании интеграции. Данный параметр является обязательным.
- $secret - Секретный ключ. Представляет собой набор символов, который выдается при создании интеграции. Длина - 32 символа. Данный параметр является обязательным.
Подробнее о веб - хуках можно узнать на сайте документации.
Уведомления
Для отправки уведомления пользователям используется метод sendNotification()
Метод принимает в качестве аргумента массив с параметрами уведомления, подробнее можно узнать на сайте документации.
Логирование
Библиотека использует стандарт PSR-3 для логгирования. Для включения логирования нужно у созданного ранее класса вызвать метод setLogger() и передать в качестве аргумента обьект, реализующий интерфейс
LoggerInterface пакета Psr\Log. Подробнее о PSR-3
Подготовленные запросы
Если вы хотите самостоятельно делать запросы - библиотека предоставляет возможность получать данные для этого. Для этого есть метод getPreparedUrl($method, $model, $params), где $method - метод запроса, $model - модель, $params - параметры запроса. Результатом работы метода является массив с ключом url - URL - адрес для выполенения запроса и data - данные, которые должны быть переданы в теле запроса.
Примеры
//Создаем обьект для работы с API сайта https://a13344.business.ru $api = new Client('a13344', 2134124, 'CWZf963mlm0srCKXu8LPepSq69uEv6Hf', true); //Устанавливаем свой логгер $api->setLogger($myLogger); //Удалить задачу с ID 224 $api->request('delete', 'tasks', ['id' => 224]); //Создать задачу c описанием 'Задача создана с помощью API' $api->request('post', 'tasks', ['task_type_id' => 2, 'description' => 'Задача создана с помощью API', 'author_employee_id' => 44224]); //Вернет все задачи с типом 2 $api->requestAll('tasks', ['task_type_id' => 2]); //Вернет все товары $api->requestAll('goods'); //Отправить пользователя 12345 уведомление $api->sendNotification(['employee_ids' => [12345], 'header' => 'Это заголовок уведомления', 'message' => 'Это текст сообщения']);
Ответ
В массиве ответа
- ключ status - статус запроса
- ключ result - ответ на запрос
Примечания
- Для работы библиотеки требуется права на чтение и запись в директории библиотеки.
- При выполнении запроса requestAll нужно понимать, что если например запросить все товары, а товаров бывает очень много, получение ответа может занять продолжительное время.
- При включении опции sleep библиотека будет ждать до 300 секунд, пока не получит разрешения продолжить запрос. Если в конфигурации интерпретатора php.ini параметр max_execution_time указано значение меньше 300, то время ожиидания будет снижено до этого значения.