business-ru/business-online-sdk-php
用于与Бизнес.Ру API交互的SDK
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: 2024-09-28 17:02:15 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": "*" 到项目的依赖项列表中。
"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 - 账户名称。例如,对于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
- 使用方法 requestAll
Request($method, $model, $params)
$method - 请求方法
支持4种请求方法
- get - 获取记录的请求
- post - 创建记录的请求
- put - 更改记录的请求
- delete - 删除记录的请求
并非所有模型都支持所有方法。
有关请求方法的详细信息,请参阅文档。
$model - 模型
模型 - 用于指定工作数据的类型。所有支持的模式可以在文档中找到。
$params - 请求参数
请求参数用于指定特定文档、排序、选择条件等。可以在文档中找到可能的参数。
RequestAll($model, $params)
与之前的方法不同,该方法仅执行 get 查询,但在响应中可以获取无限量的数据(查询限制为 250 条记录不适用)。该方法执行时间可能较长。如果创建对象时传递了参数 $sleepy 等于 true,则即使超过查询限制,该方法也会继续工作,直到获取所有记录。
$model - 模型
模型 - 用于指定工作数据的类型。所有支持的模式可以在文档中找到。
$params - 请求参数
请求参数用于指定特定文档、排序、选择条件等。可以在文档中找到可能的参数。
处理 Webhook
要处理 Webhook,创建的对象有专门的方法 - checkNotification()
在比较 Webhook 时,您可以调用此方法以检查通知的真实性。
方法返回 true 表示事件已通过检查,否则返回 false
如果只需要验证 Webhook 的功能,可能不需要创建对象,而是调用静态方法 Client::check($app_id, $secret)
参数
- $app_id - 集成ID。在创建集成时发放的一组数字。此参数是必需的。
- $secret - 密钥。在创建集成时发放的一组字符。长度为32个字符。此参数是必需的。
有关 Webhook 的更多信息,请参阅网站 文档。
通知
用于发送通知用户的方法是 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,则等待时间将降低到该值。