think.studio / ipro-software-api-php
iProSoftware API 客户端(php)
4.1.0
2024-02-09 11:34 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- nesbot/carbon: ^2.0|^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.49
- mikey179/vfsstream: ^2.0@dev
- mockery/mockery: ^1.3
- phpunit/phpunit: ^10.5
- vimeo/psalm: ^5.21
- vlucas/phpdotenv: ^5.6
README
非官方的 IproSoftware API 实现。
安装
您可以通过 composer 安装此包
composer require think.studio/ipro-software-api-php
简单示例
$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([ 'api_host' => 'my-iprosoftware-api-host', 'client_id' => 'my-iprosoftware-client-id', 'client_secret' => 'my-iprosoftware-client-secret', ]); $response = $iproSoftwareClient->getBookingRulesList(); $responseBody = json_decode($response->getBody());
注意:所有预定义的 API 请求名称您可以在 这里 找到
配置客户端
Trello 客户端需要一些配置设置才能成功运行。
创建客户端时设置配置
$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([ 'api_host' => 'my-iprosoftware-api-host', 'client_id' => 'my-iprosoftware-client-id', 'client_secret' => 'my-iprosoftware-client-secret', 'cache_manager' => new MyDatabaseAccessTokenCacheManager(), 'client_conf' => [ 'timeout' => 15, 'http_errors' => false, 'headers' => [ 'Accept' => 'application/json', ] ] ]);
初始化后设置访问令牌缓存管理器
$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([ 'api_host' => 'my-iprosoftware-api-host', 'client_id' => 'my-iprosoftware-client-id', 'client_secret' => 'my-iprosoftware-client-secret' ]); $iproSoftwareClient->setAccessTokenCacheManager(new MyDatabaseAccessTokenCacheManager())
如果您想要完全控制请求,可以设置自己的 HTTP 客户端
$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient(); $iproSoftwareClient->setHttpClient(new MyOwnHttpClient($credentials))
异常处理
如果您尝试使用错误的配置进行查询,您将获得一个异常 IproSoftwareApi\Exceptions\IproSoftwareApiException
。如果服务器无法获取访问令牌,您将收到 IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException
try { $response = $iproSoftwareClient->getBookingRulesList(); } catch (IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException $e) { $code = $e->getCode(); // Http status code from response $reason = $e->getMessage(); // Http status reason phrase $httpResponse = $e->getResponse(); // Psr\Http\Message\ResponseInterface from http client }
测试
composer test