vasylisa/mindbody-api

PHP库,用于与Mindbody Online API交互

1.0.1 2018-11-15 21:02 UTC

This package is auto-updated.

Last update: 2024-09-16 20:04:39 UTC


README

此库提供一组PHP类,允许用户以相对简单的方式与Mindbody SOAP API 0.5.1进行接口交互。

API的主要文档可通过API门户获取。

准备

在您可以使用此库之前,您需要从Mindbody获取一组API凭据

此外,您还需要知道您的站点ID。您的API凭据必须通过SiteService::GetActivationCode方法授权您的站点ID,或者使用Web表单(需要开发者认证)。

API沙盒信息可在API常见问题解答中找到。您可以使用用户名Siteowner和密码apitest1234的[Sandbox账户](https://clients.mindbodyonline.com/ASP/adm/home .asp?studioid=-99)。

当然,此库需要安装并启用PHP安装中的SOAP扩展,并且必须启用allow_url_fopen。

安装

最简单的安装方法是通过Composer。只需将vasylisa/mindbody-api包作为依赖项添加到您的项目中并更新项目。

或者,您可以直接从GitHub克隆此项目。

此库支持PSR-0自动加载,但您需要将MindbodyAPI命名空间注册为位于库的根目录,而不是供应商前缀。

基本用法

以下是一个关于Site Service类的非常基本的用法示例,它应该会打印出与您指定的站点相关联的完整信息列表。

<?php
require 'vendor/autoload.php';

$service = MindbodyAPI\MindbodyClient::service('SiteService');

$credentials = $service::credentials(
    'YourSourceName',
    'YourPassword',
    [
        -99 // Your Site ID(s)
    ]
);

$request   = $service::request('GetLocations', $credentials);
$locations = $service->GetLocations($request);

var_dump($locations);
<?php
require 'vendor/autoload.php';

$service = MindbodyAPI\MindbodyClient::service('AppointmentService');

$credentials = $service::credentials(
    'YourSourceName',
    'YourPassword',
    [
        -99 // Your Site ID(s)
    ]
);

$userCredentials = $service::userCredentials(
    'Siteowner',
    'apitest1234',
    [
        -99 // Your Site ID(s)
    ]
);

$request = $service::request('AddOrUpdateAppointments', $credentials, $userCredentials);

$appointment    = $service::structure('Appointment', [
    'Location'      => $service::structure('Location', ['ID' => $locationId]),
    'Staff'         => $service::structure('Staff', ['ID' => $staffId]),
    'Client'        => $service::structure('Client', ['ID' => $clientId]),
    'SessionType'   => $service::structure('SessionType', ['ID' => $sessionTypeId]),
    'StartDateTime' => $date->format('Y-m-d\TH:i:s'),
]);

$request->Request->UpdateAction = $appointment->ID ? 'Update' : 'AddNew';
$request->Request->Appointments = [$appointment];

$response = $service->AddOrUpdateAppointments($request);
<?php
require 'vendor/autoload.php';

$service = MindbodyAPI\MindbodyClient::service('AppointmentService');

$credentials = $service::credentials(
    'YourSourceName',
    'YourPassword',
    [
        -99 // Your Site ID(s)
    ]
);

$request = $service::request('GetStaffAppointments', $credentials);

$request->Request->StaffCredentials = $service::staffCredentials(
    'Siteowner',
    'apitest1234',
    [
        -99 // Your Site ID(s)
    ]
);

$request->Request->StaffIDs       = $staffID;
$request->Request->ClientIDs      = $clientIDs;
$request->Request->AppointmentIDs = $appointmentIDs;
$request->Request->LocationIDs    = $locationIDs;
$request->Request->StartDate      = $startDate ? $startDate->format('Y-m-d\TH:i:s') : null;
$request->Request->EndDate        = $endDate ? $endDate->format('Y-m-d\TH:i:s') : null;

$response = $service->GetStaffAppointments($request);