gonebusy/gonebusy-php-client

这是与Gonebusy完整API通信的PHP客户端

v0.1.3 2017-06-19 00:09 UTC

This package is not auto-updated.

Last update: 2024-09-29 01:07:33 UTC


README

Build Status PHP version

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指向它。步骤如下:

  1. https://curl.haxx.se/docs/caextract.html下载证书包(.pem文件)到您的系统。
  2. 将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/目录中。

  1. 请确保您已使用composer安装了依赖项,包括require-dev依赖项。
  2. 从命令行运行vendor/bin/phpunit以执行测试套件。有关测试输出格式以及更多命令行选项的信息,请参阅https://phpunit.de/manual/current/en/textui.html
  3. 可选地,为了检查代码标准,您可以运行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>![Method: ](https://apidocs.io/img/method.png ".BookingsController.cancelBookingById") 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);

错误

返回控制器列表