Использование API сервиса Rubitime

Для подключения Bitrix24, amoCRM или Google Календаря смотрите данную инструкцию.

Для использования API необходимо сгенерировать ключ доступа на 5 шаге настроек, в блоке "Получение и сохранение данных при помощи API". Для генерации ключа нужно нажать кнопку "Сгенерировать ключ", для перегенерации "Перегенерировать ключ", для удаления "Удалить ключ".

Для получения данных необходимо вызвать https://rubitime.ru/rest/{method}, передать ключ "rk" и параметры POST запросом:

МетодПараметрыОписание
get-record'id' => 1// id записи
'rk' => 'xxx' // API ключ
Получить данные о записи номер X, где X - # записи.
get-records'from' => '2020-01-01',// дата с которой получить записи;
'to' => '2020-01-02',// дата до которой получить записи.
'rk' => 'xxx' // API ключ
Получить массив записей по датам от и до. Формат даты: YYYY-MM-DD. Не рекомендуется указывать большой интервал в случае большого количества записей в периоде.
create-record
и update-record
'id' => 79379, // только для update-record
'branch' => '1013', // id филиала
'cooperator' => '1702', // id сотрудника
'service' => '3925', // id услуги
'name' => 'Иванов Иван Иванович', // ФИО клиента
'email' => 'test@test.ru', // email клиента
'phone' => '+70000000000', // телефон клиента
'comment' => 'Комментарий', // комментарий клиента к записи
'datetime' => '2020-01-18 20:00', // дата и время, на которое записан клиент
'price' => 100.00, // стоимость услуги
'duration' => 60, // длительность услуги в минутах
'prepayment' => 50.00, // сумма предоплаты
'reminder' => '2020-01-18 19:00', // время по МСК для отправки напоминания
'custom1' => 'Дополнительное поле 1', // данные для дополнительных полей: custom1, custom2, ..., custom6
'status' => 0, // статус записи: 0 => 'Записан', 1 => 'На обслуживании', 2 => 'Завершен', 3 => 'Ожидание предоплаты', 4 => 'Отменен', 5 => 'Ожидает подтверждения', 6 => 'Предварительное бронирование'
'rk' => 'xxx', // API ключ
Создание новой записи и редактирование существующей записи.
get-clients'rk' => 'xxx' // API ключПолучить массив клиентов.
get-time'id' => 1, // id услуги
'rk' => 'xxx' // API ключ
Получить график оказания услуги: массив дат и времени для записи.

В ответе возвращается 3 параметра:

status - может быть ok или error;
message - текст сообщения;
data - результат выполнения запроса.

Пример запроса

Пример получения графика оказания услуги #3 "Макияж" от Виктории с демо-сайта (номер услуги указан в шапке блока при редактировании самой услуги "Редактировать услугу #3"):

$queryUrl = 'https://rubitime.ru/rest/get-time/3'; // метод get-time и номер услуги 3
$queryData = [
    'rk' => 'xxx', // xxx - сгенерированный ключ
];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => $queryUrl,
    CURLOPT_POSTFIELDS => http_build_query($queryData),
]);
$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result, true);
if ($result) {
    if ($result['status'] == 'ok') {
        echo "Success: {$result['message']}";
        var_dump($result['data']);
    } else {
        echo "Error: {$result['message']}";
    }
}

Пример ответа

[
    'status' => 'ok',
    'message' => 'Service found',
    'data' => [
        '2019-10-14' =>
            [
                '10:00' => [
                    'available' => true, // true - время доступно для записи, false - время уже забронировано
                    'time' => "10:00",
                    'fulldate' => "2019-10-14 10:00:00",
                    'fulldaten' => 1584169200,
                    'cooperator' => 2,
                    'service' => 3,
                    'rclientid' => null,
                    'baseCooperator' => 2,
                    'cooperatorName' => "Виктория",
                ],
                '11:00' => [
                    'available' => false,
                    'time' => "10:00",
                    'fulldate' => "2019-10-14 11:00:00",
                    'fulldaten' => 1684169200,
                    'cooperator' => 2,
                    'service' => 3,
                    'rclientid' => null,
                    'baseCooperator' => 2,
                    'cooperatorName' => "Виктория",
                ],
                //...
            ],
        '2019-10-15' => [
            [
                '10:00' => [
                    'available' => true,
                    'time' => "10:00",
                    'fulldate' => "2019-10-15 10:00:00",
                    'fulldaten' => 1584169200,
                    'cooperator' => 2,
                    'service' => 3,
                    'rclientid' => null,
                    'baseCooperator' => 2,
                    'cooperatorName' => "Виктория",
                ],
                //...
            ],
        ],
    ]
];