APIドキュメント

当社の開発者APIを使ってあなた独自の予約画面を作成することも可能です。あなたの事業内容に合わせシンプルなウィジェットから複数の機能を備えた高機能ウィジェットまで、ご自身でカスタムソリューションが作成可能です。

SimplyBook.meアプリケーションインターフェイスはJSON-RPC 2.0 protocolを使用しています。

APIベース予約インターフェースの使用例を確認し、このソリューションのソースコードを読んで下さい。

認証

Simplybook API手法は、認証を必要とします。 Smplybook API認証のためには、アクセスキーとアクセストークンを取得する必要があります。このアクセストークンを取得するためには、個人のAPIキーをパスしてhttp://user-api.simplybook.me/loginで JSON-RPC手法getTokenを呼び出さなければなりません。管理者インターフェースでAPIキーをコピーすることができます:「プラグイン」リンクに移動して、APIプラグイン「設定」を選択します。 その後SimplyBook.me APIのリモートアクセスを起動しなければなりません。以下のヘッダーを含めて下さい: 'X-Company-Login', 'X-Token'

アクセストークンはクライアントサイドから、もしくは更に安全なあなたのサーバーサイドから実装できます。

あなた自身のソリューション開発のために、当社の例からjavascript JSON-RPC-client libraryphp JSON-RPC-client library を利用することができます。


クライアント API (会社公共サービス) 認証

クライアントサイドコードからの承認

トークンキーを入手する。


    var loginClient = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getToken( YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

JSON-RPC-クライアントの初期化。


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-Token': token
        },
        'onerror': function (error) {}
    });
    

サーバーサイドコードからの承認

トークンキーを入手する。


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getToken(YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

JSON-RPC-クライアントの初期化。


    $client = new JsonRpcClient( 'https://user-api.simplybook.me' . '/', array(
        'headers' => array(
            'X-Company-Login: ' .  YOUR_COMPANY_LOGIN,
            'X-Token: ' . $token
        )
    ));
    

ユーザー/管理 API (会社管理サービス) 認証

クライアントサイドコードからの承認

トークンキーを入手する。


    var loginClient = new JSONRpcClient({
        'url': {$api_url} + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getUserToken( YOUR_COMPANY_LOGIN,  YOUR_USER_LOGIN,  YOUR_USER_PASSWORD);
    

JSON-RPC-クライアントの初期化。


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/admin/',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-User-Token': token
        },
        'onerror': function (error) {}
    });
    

サーバーサイドコードからの承認

トークンキーを入手する。


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getUserToken({YOUR_COMPANY_LOGIN, YOUR_USER_LOGIN, YOUR_USER_PASSWORD);
    

JSON-RPC-クライアントの初期化。


    $client = new JsonRpcClient('https://user-api.simplybook.me' . '/admin/', array(
        'headers' => array(
            'X-Company-Login: ' . YOUR_COMPANY_LOGIN,
            'X-User-Token: ' . $token
        )
    ));
    

SimplyBook.meサーバーからデータを入手する

予約ページは通常、クライアントが必要なサービス、従業員、ミーティング時間を選択するページです。クライアントは連絡先情報を入力して予約を確認します。もっと複雑なソリューションは、別の追加フィールドを記入したり、グループや複数回の予約などを作ることを含むことがあります。一番簡単な予約ページで作成のワークフローを説明しましょう。あなたのページに追加機能を追加する必要がある場合には、SimplyBook.me API メソッドのフルリストをこちらからご覧ください。

まず最初に表示すべきなのは、サービスリストとスタッフリストです。以下からデータを入手して下さいgetEventList & getUnitList。 両方とも項目の情報が揃ったリストです。これらによりサービスやスタッフの表示の仕方が広がります。スタッフのフィルタリングには選択されたサービスが提供可能なスタッフに関する情報をまとめたunit_mapをお使い下さい。

サービス取得リストのコード例


    $services = $client->getEventList();
    // returns array(array(
    //     'id' => 1, - service id
    //     'name' => 'Service 1', - service's name
    //     'description' => 'Describe your service...', - service description
    //     'duration' => 60, - service duration
    //     'hide_duration' => 0, - Hide duration to clients flag,
    //     'picture' => null, - file name of picture or null
    //     'picture_path' => '/uploads/apidemo/event__picture/small/', - full path to picture,
    //     'position' => 1 - service position
    //     'is_active' => 1, - the service is activated
    //     'is_public' => 1, - the service is allowed to book by clients
    // ), ...)
    

サービスプロバイダーリスト取得のコード例


    $services = $client->getUnitList();
    // returns array(array(
    //    'id' => 1, - performer id
    //    'name' => 'Provider 1', - performer name
    //    'phone' => '111111111', - perfomer phone number
    //    'description' => 'Describe your performer...', - performer description
    //    'email' => 'test@gmail.com', - perfomer email,
    //    'is_active' => 1, - the performer is activated
    //    'is_visible' => 1, - the perfomer is visible for clients,
    //    'picture' => null, - file name of picture or null,
    //    'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - full path to picture
    //    'position' => 1, - performer position
    //    'qty' => 1, performer quantity
    // ), ...)
    

次のステップは、サービスと時間の選択です。私たちはAPIの使用例の中でBootstrap date-pickerを使用していますが、その他のカレンダーも使用可能です。 サービススケジュールの初日を設定するにはgetFirstWorkingDayメソッドを使用して下さい。スタッフIDを変数として取得し、選択されたスタッフ(もしくはデフォルト設定である任意のスタッフ)がサービスに従事可能な日を返します。{""|t} 選択された日付のタイムスロットを表示するには営業カレンダー入手 & getStartTimeMatrixメソッドが必要です。最初のメソッドには営業スケジュールの開始時刻と終了時刻、休業日などの情報を提供します。そして、2番目のメソッドは特定の日付で予約可能なタイムスロットのリストを返します。

営業日情報取得のコード例


    $year = 2020;
    $month = 3; // March
    $performerId = 1; // Can be null
    $workDaysInfo = $client->getWorkCalendar($year, $month, $performerId);
    // returns array(
    //     '2020-03-01' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     '2020-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     ...
    //);
    

開始時間マトリックス取得のコード例


    $dateFrom = '2020-03-03';
    $dateTo = '2020-03-04';
    $serviceId = 1;
    $performerId = 1;
    $qty = 1;
    $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty);
    // returns array(
    //     '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //     '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //);
    

さらに便利なメソッドとしては>calculateEndTimeがあります。各サービスは独自のサービス時間が設定可能で、また各スタッフも異なるスケジュールが設定できます。これらのメソッドによりクライアントに予約したサービスの終了日時を表示することができるようになります。

予約終了時間計算のコード例


    $startDateTime = '2020-03-03 09:00:00';
    $serviceId = 1;
    $performerId = 1;
    $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId);
    // returns '2020-03-03 10:00:00'
    

クライアントが予約確認ボタンをクリックした時に予約メソッドを呼び出さなければなりません。 これは、SimplyBook.meシステムですべての必要な確認を実行して新しい予約を登録するメイン機能です。予約や名前・電話ん番号・追加のパラメータといったクライアントデータに関する情報を取り入れます。API 機能リストにてこのメソッドのすべてのパラメータの説明をご覧ください。 予約メソッドレスポンスは、独自のコード・その他新規予約に関する詳細とエラーリストを含み、これらの情報を基にクライアントに予約結果を直感的に表示することができます。


APIシークレットキーを使用する

予約方法は、確認を必要とする場合があります。例、支払い終了後に予約を受け付けたい場合 SimplyBook.me API 予約確認方法は、予約IDとセキュア署名を変数としてを取得します(その他に署名を必要とするメソッドとして予約キャンセルがあります)。 セキュア署名を生成するためにはあなたのシークレットAPIキーの使用が必要になります。以下の例から使い方をご覧下さい。シークレットキーは管理者画面の「設定」内にあるプラグインリストのAPIプラグインからご確認下さい。

サービス予約のサンプルコードとシークレットAPIキーを使った確認例


    $additionalFields = array(
	'6740d3bce747107ddb9a789cbb78abf3' => 'value1',
	'b0657bafaec7a2c9800b923f959f8163' => 'value2'
    );

    $clientData = array(
        'name' => 'Client name',
        'email' => 'client@email.com',
        'phone' => '+13152108338'
    );

    $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields);

    if ($bookingsInfo->require_confirm) {
       foreach ($bookingsInfo->bookings as $booking) {
           $sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY);
           $result = $client->confirmBooking($booking->id, $sign);
           echo '<br>Confirm result</b><br />';
           var_dump($result);
        }
    }
    

追加フィールド取得のコード例


    $fields = $client->getAdditionalFields($eventId);
    // returns - array(array(
    //		'name' => 'b0657bafaec7a2c9800b923f959f8163', - field name
    //		'title' => 'Test digits', - field title
    //		'type' => 'digits', - field type
    //		'values' => null, - available values for select field type
    //		'default' => null, - default value for field
    //		'is_null' => null, - is filed nullable
    //		'on_main_page' => 1,
    //		'pos' => 1, - field position
    //		'value' => null
    // )), ...)
    

SimplyBook.meプラグイン

あなたのサービスが追加機能を必要とする場合、追加プラグインをご利用頂けます。管理者画面内にある「プラグイン」の項目からプラグインリストと各プラグインの詳細説明が確認できます。必要なプラグインを有効にすることでり、対応するAPIメソッドが起動され、あなたのコードの中で使用が可能になります。

予約機能コードフロー

loginClient.getToken(companyLogin, apiKey);機能を使ってSimplyBook.me APIを許可します。


サービスカテゴリープラグインが isPluginActivated('event_category')によってアクティブ化されているかどうかを確認し、もしそうであれば、getCategoriesList()カテゴリーリストを表示します。


getEventList()getUnitList()機能を利用してサービス(イベント)とパーフォーマ―(ユニット)のリストを取得します。'unit_map'配列がサービスに利用可能であれば、このサービスは所定のパーフォーマ―だけが提供できるという意味です。


任意の従業員セレクタープラグインがアクティブ化されていてisPluginActivated('any_unit')”ユニットマップ”配列でサービス-パーフォーマ―の特別期間の設定がない場合には、ユーザーは 任意のプロバイダーオプションを選択する、または手動でプロバイダーを選択することとなります。 しかし、getCompanyParam('any_unit__hide_other_units')が有効の場合には、パーフォーマ―の手動選択はできないこととなります。


getStartTimeMatrix ($from as current date, $to as current date, $eventId, $unitId, $count as selected participants value )を使用して、所定の日付に利用できるタイムスロットを取得します。$unitIdは、任意の従業員オプションが選択されている場合には、ゼロでなければなりません。


任意の従業員セレクターがアクティブで任意の従業員が選択された場合には、getAvailableUnits($eventId, $dateTime, $count)を呼び出して、 利用可能な $unitIdを取得します


追加フィールドプラグインがアクティブ化されているisPluginActivated('event_field') 場合には、getAdditionalFields($eventId)機能を呼び出してクライアントが記入するフィールドリストを取得します。


book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId)を呼び出して、予約をします。


どうして何千というカスタマーがSimplyBook.me APIを選ぶのか?

クリアでシンプルなインターフェイス。スムーズにあなた自身の予約サービスが構築できます。

必要なプラグイン機能を拡張できます

リアルタイムスケジューリング – クライアントは24時間・365日、どこからでも予約ができます

このアプリは別の使いやすい機能を豊富に提供します。ここをクリックして、機能に関してもっと知りましょう。

開発者

クライアントはアプリを使いながらそのまま予約プロセスへ進むことができます!

クライアントが望む機能を提供することで、あなたのウェブサイトとアプリをより興味深く、より収益性が高く、よりクライアントとの関係性の高いものに。私たちのAPIを使うことで、簡単に「今すぐ予約」ボタンをあなたのウェブサイトに。これであなたのクライアントはリアルタイムで昼でも夜でも予約が取れるようになります。

私たちのAPIはあなたが予約機能を立ち上げるために必要なすべての予約データへのアクセスを可能にします。

クライアントとあなたのビジネススケジュールをつなぐことで、私たちは新たなビジネスレイヤーを創造します。 ウェブサイトやアプリからのダイレクト予約システムは潜在的なカスタマーの発掘ではなく、実際にカスタマーとしてあなたにお届けします。