business-ru/business-online-sdk-php

用于与Бизнес.Ру API交互的SDK

1.4.13 2021-07-09 06:36 UTC

README

https://api-online.class365.ru

要求

PHP 7.3(及以上版本)

安装

使用Composer在控制台安装

  1. 如果在此之前尚未安装,请在项目文件夹中安装包管理器Composer

  2. 在控制台执行以下命令:

composer require business-ru/business-online-sdk-php

或者

  1. 在项目中的composer.json文件中添加以下依赖项:

"business-ru/business-online-sdk-php": "*" 到项目的依赖项列表中。

    "require": {
        "business-ru/business-online-sdk-php": "*"
	}
  1. 更新项目依赖项。在控制台切换到包含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() 方法,并传递实现接口的对象作为参数

LoggerInterfacePsr\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,则等待时间将降低到该值。