gonebusy / gonebusy-php-client
这是与Gonebusy完整API通信的PHP客户端
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- apimatic/jsonmapper: ~1.2.0
- mashape/unirest-php: ~3.0.1
Requires (Dev)
- phpunit/phpunit: 5.7.*
- squizlabs/php_codesniffer: 2.*
README
Gonebusy REST API的PHP SDK
沙箱
我们有一个沙箱环境供您使用!
要指向沙箱,只需使用sandbox.gonebusy.com代替您看到beta.gonebusy.com的地方,包括创建账户以检索您的API密钥。
沙箱环境与实时网站完全独立 - 这包括您的沙箱API密钥在实时环境中不可用。
如何使用
Gonebusy对象的摘要
(更多关于开发者门户的信息)
- 需要用户来执行操作。
- 资源(WHO)执行服务,并且对于所有调度操作都是必需的。每个用户都会自动分配一个默认资源(她自己/他自己)。
- 服务(WHAT)由资源根据计划执行。服务被分配一个定价模型。 服务还可以被分配一个类别。
- 计划(WHEN)定义资源何时执行服务。计划的部分称为时间窗口。
- 最后,在计划中的特定时间窗口处放置一个预订,将其链接到资源-服务组合。
- 可以执行用户和服务的搜索。
API密钥
如果在沙箱中进行测试,请注册/登录到https://sandbox.gonebusy.com/login。
如果使用生产站点,请注册/登录到https://beta.gonebusy.com/login。
登录后,转到API密钥页面并请求API密钥。
初始化/认证
为了设置API客户端的认证和初始化,您需要以下信息。
API客户端可以初始化如下。
// Configuration parameters and credentials $authorization = "Token <your API key>"; // Set Authorization to "Token <your API key>" $client = new GonebusyLib\GonebusyClient($authorization);
如何构建
Composer安装
> composer install Loading composer repositories with package information Installing dependencies (including require-dev) from lock file - Installing apimatic/jsonmapper (v1.2.0) Loading from cache [ ... snip ... ] - Installing squizlabs/php_codesniffer (2.9.0) Downloading: 100% symfony/yaml suggests installing symfony/console (For validating YAML files using the lint command) sebastian/global-state suggests installing ext-uopz (*) phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.1) phpunit/phpunit suggests installing ext-xdebug (*) phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) Generating autoload files
[仅限Windows用户] 在php.ini中配置CURL证书路径
CURL曾经包含一组接受的CA列表,但现在不再捆绑任何CA证书。因此,默认情况下,它将拒绝所有SSL证书为不可验证。您将需要获取您的CA证书,并将curl指向它。步骤如下:
- 从https://curl.haxx.se/docs/caextract.html下载证书包(.pem文件)到您的系统。
- 将curl.cainfo = "PATH_TO/cacert.pem"添加到您的php.ini文件,该文件位于您的PHP安装中。"PATH_TO"必须是一个包含.pem文件的绝对路径。
[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. ;curl.cainfo =
如何测试
此SDK中的单元测试可以使用PHPUnit运行。测试用例位于test/Controllers/目录中。
- 请确保您已使用composer安装了依赖项,包括
require-dev
依赖项。 - 从命令行运行
vendor/bin/phpunit
以执行测试套件。有关测试输出格式以及更多命令行选项的信息,请参阅https://phpunit.de/manual/current/en/textui.html。 - 可选地,为了检查代码标准,您可以运行
vendor/bin/phpcs
(请参阅phpcs.xml
)。(无输出表示没有问题。)
类参考
控制器列表
预订控制器
获取单例实例
可以从API客户端访问预订控制器
类的单例实例。
$bookings = $client->getBookings();
getBookings
返回预订列表。
function getBookings( $authorization, $page = 1, $perPage = 10, $states = null, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $states = 'states'; $userId = 131; $result = $bookings->getBookings($authorization, $page, $perPage, $states, $userId);
错误
createBooking
使用参数创建预订
function createBooking( $authorization, $createBookingBody = null)
参数
示例用法
$authorization = 'Authorization'; $createBookingBody = new CreateBookingBody(); $result = $bookings->createBooking($authorization, $createBookingBody);
错误
getBookingById
按id返回预订。
function getBookingById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $bookings->getBookingById($authorization, $id);
错误
updateBookingById
按id更新预订
function updateBookingById( $authorization, $id, $updateBookingByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $updateBookingByIdBody = new UpdateBookingByIdBody(); $result = $bookings->updateBookingById($authorization, $id, $updateBookingByIdBody); #### Errors | Error Code | Error Description | |------------|-------------------| | 400 | Bad Request | | 401 | Unauthorized/Missing Token | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 0 | Unexpected error | #### <a name="cancel_booking_by_id"></a> cancelBookingById > Cancel a Booking by id ```php function cancelBookingById( $authorization, $id, $cancelRecurring = null, $date = null, $endDate = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $cancelRecurring = 'cancel_recurring'; $date = date("D M d, Y G:i"); $endDate = date("D M d, Y G:i"); $result = $bookings->cancelBookingById($authorization, $id, $cancelRecurring, $date, $endDate);
错误
分类控制器
获取单例实例
可以从API客户端访问分类控制器
类的单例实例。
$categories = $client->getCategories();
getCategories
返回分类列表。
function getCategories( $authorization, $page = 1, $perPage = 10, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $userId = 131; $result = $categories->getCategories($authorization, $page, $perPage, $userId);
错误
createCategory
创建分类
function createCategory( $authorization, $createCategoryBody = null)
参数
示例用法
$authorization = 'Authorization'; $createCategoryBody = new CreateCategoryBody(); $result = $categories->createCategory($authorization, $createCategoryBody);
错误
getCategoryById
按id返回分类。
function getCategoryById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $categories->getCategoryById($authorization, $id);
错误
PricingModelsController
获取单例实例
可以通过API客户端访问PricingModelsController
类的单例实例。
$pricingModels = $client->getPricingModels();
getPricingModels
返回PricingModels列表。
function getPricingModels( $authorization, $page = 1, $perPage = 10, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $userId = 131; $result = $pricingModels->getPricingModels($authorization, $page, $perPage, $userId);
错误
createPricingModel
使用参数创建PricingModel。
function createPricingModel( $authorization, $createPricingModelBody = null)
参数
示例用法
$authorization = 'Authorization'; $createPricingModelBody = new CreatePricingModelBody(); $result = $pricingModels->createPricingModel($authorization, $createPricingModelBody);
错误
getPricingModelById
通过id返回PricingModel。
function getPricingModelById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $pricingModels->getPricingModelById($authorization, $id);
错误
updatePricingModelById
通过id和参数更新PricingModel。
function updatePricingModelById( $authorization, $id, $updatePricingModelByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $updatePricingModelByIdBody = new UpdatePricingModelByIdBody(); $result = $pricingModels->updatePricingModelById($authorization, $id, $updatePricingModelByIdBody);
错误
ResourcesController
获取单例实例
可以通过API客户端访问ResourcesController
类的单例实例。
$resources = $client->getResources();
getResources
返回Resources列表。
function getResources( $authorization, $page = 1, $perPage = 10, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $userId = 89; $result = $resources->getResources($authorization, $page, $perPage, $userId);
错误
createResource
使用参数创建Resource。
function createResource( $authorization, $createResourceBody = null)
参数
示例用法
$authorization = 'Authorization'; $createResourceBody = new CreateResourceBody(); $result = $resources->createResource($authorization, $createResourceBody);
错误
getResourceThings
返回所有Resource Things。
function getResourceThings( $authorization, $page = 1, $perPage = 10)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $result = $resources->getResourceThings($authorization, $page, $perPage);
错误
getResourceById
通过id返回Resource。
function getResourceById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $resources->getResourceById($authorization, $id);
错误
updateResourceById
根据id更新资源,带参数
function updateResourceById( $authorization, $id, $updateResourceByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $updateResourceByIdBody = new UpdateResourceByIdBody(); $result = $resources->updateResourceById($authorization, $id, $updateResourceByIdBody);
错误
deleteResourceById
根据id删除资源
function deleteResourceById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $resources->deleteResourceById($authorization, $id);
错误
SchedulesController
获取单例实例
SchedulesController
类的单例实例可以通过API客户端访问。
$schedules = $client->getSchedules();
getSchedules
返回您账户可以访问的所有计划。包括您自己的用户以及任何您是账户经理的用户。
function getSchedules( $authorization, $page = 1, $perPage = 10, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $userId = 89; $result = $schedules->getSchedules($authorization, $page, $perPage, $userId);
错误
createSchedule
使用参数创建计划。
function createSchedule( $authorization, $createScheduleBody = null)
参数
示例用法
$authorization = 'Authorization'; $createScheduleBody = new CreateScheduleBody(); $result = $schedules->createSchedule($authorization, $createScheduleBody);
错误
getScheduleById
根据id返回计划。
function getScheduleById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $schedules->getScheduleById($authorization, $id);
错误
deleteScheduleById
删除计划
function deleteScheduleById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $schedules->deleteScheduleById($authorization, $id);
错误
createScheduleTimeWindow
向计划中添加时间窗口。
function createScheduleTimeWindow( $authorization, $id, $createScheduleTimeWindowBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $createScheduleTimeWindowBody = new CreateScheduleTimeWindowBody(); $result = $schedules->createScheduleTimeWindow($authorization, $id, $createScheduleTimeWindowBody);
错误
updateScheduleTimeWindowById
更新计划的某个时间窗口。
function updateScheduleTimeWindowById( $authorization, $id, $timeWindowId, $updateScheduleTimeWindowByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $timeWindowId = 'time_window_id'; $updateScheduleTimeWindowByIdBody = new UpdateScheduleTimeWindowByIdBody(); $result = $schedules->updateScheduleTimeWindowById($authorization, $id, $timeWindowId, $updateScheduleTimeWindowByIdBody);
错误
deleteScheduleTimeWindowById
从计划中删除时间窗口
function deleteScheduleTimeWindowById( $authorization, $id, $timeWindowId)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $timeWindowId = 'time_window_id'; $result = $schedules->deleteScheduleTimeWindowById($authorization, $id, $timeWindowId);
错误
SearchController
获取单例实例
可以通过API客户端访问SearchController
类的单例实例。
$search = $client->getSearch();
searchQuery
搜索提供者和提供的服务。
function searchQuery( $authorization, $query)
参数
示例用法
$authorization = 'Authorization'; $query = 'query'; $result = $search->searchQuery($authorization, $query);
错误
ServicesController
获取单例实例
可以通过API客户端访问ServicesController
类的单例实例。
$services = $client->getServices();
getServices
返回服务列表。
function getServices( $authorization, $page = 1, $perPage = 10, $userId = null)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $userId = 89; $result = $services->getServices($authorization, $page, $perPage, $userId);
错误
createService
使用参数创建服务。
function createService( $authorization, $createServiceBody = null)
参数
示例用法
$authorization = 'Authorization'; $createServiceBody = new CreateServiceBody(); $result = $services->createService($authorization, $createServiceBody);
错误
getServiceAvailableSlotsById
返回服务的可用时间。
function getServiceAvailableSlotsById( $authorization, $id, $date = null, $endDate = null, $startDate = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $date = date("D M d, Y G:i"); $endDate = date("D M d, Y G:i"); $startDate = date("D M d, Y G:i"); $result = $services->getServiceAvailableSlotsById($authorization, $id, $date, $endDate, $startDate);
错误
getServiceById
按ID返回服务。
function getServiceById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $services->getServiceById($authorization, $id);
错误
updateServiceById
使用参数更新服务。
function updateServiceById( $authorization, $id, $updateServiceByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $updateServiceByIdBody = new UpdateServiceByIdBody(); $result = $services->updateServiceById($authorization, $id, $updateServiceByIdBody);
错误
deleteServiceById
按ID删除服务
function deleteServiceById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $services->deleteServiceById($authorization, $id);
错误
UsersController
获取单例实例
可以从API客户端访问UsersController
类的单例实例。
$users = $client->getUsers();
getUsers
返回您账户可以访问的所有用户。包括您自己的用户以及您是账户经理的任何用户。
function getUsers( $authorization, $page = 1, $perPage = 10)
参数
示例用法
$authorization = 'Authorization'; $page = 1; $perPage = 10; $result = $users->getUsers($authorization, $page, $perPage);
错误
createUser
创建一个用户
function createUser( $authorization, $createUserBody = null)
参数
示例用法
$authorization = 'Authorization'; $createUserBody = new CreateUserBody(); $result = $users->createUser($authorization, $createUserBody);
错误
getUserById
通过id返回一个用户。
function getUserById( $authorization, $id)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $result = $users->getUserById($authorization, $id);
错误
updateUserById
通过id和参数更新一个用户。
function updateUserById( $authorization, $id, $updateUserByIdBody = null)
参数
示例用法
$authorization = 'Authorization'; $id = 'id'; $updateUserByIdBody = new UpdateUserByIdBody(); $result = $users->updateUserById($authorization, $id, $updateUserByIdBody);