Структура запроса
Запросы BatchAvailabilityLookup
могут охватывать несколько сервисов одного и того же продавца, а запрашиваемые интервалы могут охватывать несколько ресурсов и дней. Для упрощения интеграции мы рекомендуем использовать единый идентификатор сервиса для всех продавцов.
Время отклика
Запросы BatchAvailabilityLookup
имеют порог задержки в 1,5 секунды, после чего ответ считается ошибочным. Убедитесь, что ваша внутренняя сеть и маршрутизация DNS синхронизированы, чтобы минимизировать задержку запроса, достигающего вашей инфраструктуры. При наличии существенных ошибок тайм-аута ваша интеграция может быть отключена до тех пор, пока вы не сможете их устранить.
Каждый ответ на запрос должен содержать информацию о текущем состоянии вашего инвентаря на данный момент, а не на момент начала процесса бронирования. Если слот забронирован, отразите это в текущих ответах.
Определения
Метод BatchAvailabilityLookup
проверяет, что во время процесса бронирования пользователям предоставляются только текущие слоты.
Запрос BatchAvailabilityLookup
message BatchAvailabilityLookupRequest {
// ID of the merchant.
string merchant_id = 1;
// Multiple slot times to be checked for availability. All queried times apply
// to the same merchant_id and service_id.
repeated SlotTime slot_time = 3;
reserved 2;
}
Ответ BatchAvailabilityLookup
// Response for the [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest]
// RPC with the availabilities of the appointment slots.
message BatchAvailabilityLookupResponse {
// The availabilities for the requested SlotTime entries. There must be
// exactly one slot_time_availability for each SlotTime entry in the
// [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest].
repeated SlotTimeAvailability slot_time_availability = 1;
}
SlotTime
// Identifies a Slot service_id and start time and optionally, the Slot duration
// and resources, for a specific merchant. Note that this differs from the
// definition of Slot, as it does not include merchant_id identifier.
message SlotTime {
// ID of the service. (required)
string service_id = 5;
// Start time of the appointment slot in seconds of UTC time since Unix epoch
// (required)
int64 start_sec = 1;
// Duration of the appointment slot in seconds (optional)
int64 duration_sec = 2;
// Opaque tag that identifies the availability slot and matches the value
// provided in the Availability Feed (optional)
string availability_tag = 3;
// The set of resources that specifies the appointment slot, e.g. by
// indicating the staff member and room selected by the user, or party size
// for dining slots (optional)
ResourceIds resource_ids = 4;
// Indicates whether bookings of this slot will be confirmed
// synchronously or asynchronously. (optional)
// An UNSPECIFIED value will be interpreted as synchronous.
ConfirmationMode confirmation_mode = 6;
}
SlotTimeAvailability
Если слоты не найдены, вернуть пустой ответ. Не возвращайте ошибку 400, вместо неё можно вернуть 204 или другой код 2xx. Это подтверждает, что ответ получен корректно.
message SlotTimeAvailability {
// The SlotTime for which availability was checked.
SlotTime slot_time = 1;
// Whether the requested SlotTime is available
bool available = 2;
}
Примеры поиска BatchAvailabilityLookup
Загрузка страницы
Когда пользователь нажимает кнопку «Забронировать онлайн» , чтобы начать процесс бронирования, отправляется запрос BatchAvailabilityLookup
с известными доступными слотами для продавца. Для каждого слота, отправленного в запросе, ваш сервер бронирования возвращает ответ с актуальной текущей доступностью слота. В интерфейсе пользователя отображаются только доступные слоты.
Если пользователь изменит размер группы или выберет другую дату, можно отправить еще один запрос на загрузку страницы.
Запрос на загрузку страницы
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606469400"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606471200"
}
]
}
Ответ на загрузку страницы
{ "slot_time_availability" :
[
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606467600" }
},
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606469400" }
},
{
"available" : false,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606471200" }
}
]
}
щелчок слота
Когда пользователь выбирает доступный для бронирования слот, отправляется запрос BatchAvailabilityLookup
для этого слота. Ваш сервер бронирования возвращает ответ с актуальной текущей доступностью слота. Ожидаемый ответ — False , если этот слот забронирован другим пользователем Google, внутри вашей системы или между запросами загрузки страницы и нажатия на слот.
Запрос на щелчок слота
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
]
}
Ответ на щелчок слота
{
"slot_time_availability" : [
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
}
]
}
Структура запроса
Запросы BatchAvailabilityLookup
могут охватывать несколько сервисов одного и того же продавца, а запрашиваемые интервалы могут охватывать несколько ресурсов и дней. Для упрощения интеграции мы рекомендуем использовать единый идентификатор сервиса для всех продавцов.
Время отклика
Запросы BatchAvailabilityLookup
имеют порог задержки в 1,5 секунды, после чего ответ считается ошибочным. Убедитесь, что ваша внутренняя сеть и маршрутизация DNS синхронизированы, чтобы минимизировать задержку запроса, достигающего вашей инфраструктуры. При наличии существенных ошибок тайм-аута ваша интеграция может быть отключена до тех пор, пока вы не сможете их устранить.
Каждый ответ на запрос должен содержать информацию о текущем состоянии вашего инвентаря на данный момент, а не на момент начала процесса бронирования. Если слот забронирован, отразите это в текущих ответах.
Определения
Метод BatchAvailabilityLookup
проверяет, что во время процесса бронирования пользователям предоставляются только текущие слоты.
Запрос BatchAvailabilityLookup
message BatchAvailabilityLookupRequest {
// ID of the merchant.
string merchant_id = 1;
// Multiple slot times to be checked for availability. All queried times apply
// to the same merchant_id and service_id.
repeated SlotTime slot_time = 3;
reserved 2;
}
Ответ BatchAvailabilityLookup
// Response for the [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest]
// RPC with the availabilities of the appointment slots.
message BatchAvailabilityLookupResponse {
// The availabilities for the requested SlotTime entries. There must be
// exactly one slot_time_availability for each SlotTime entry in the
// [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest].
repeated SlotTimeAvailability slot_time_availability = 1;
}
SlotTime
// Identifies a Slot service_id and start time and optionally, the Slot duration
// and resources, for a specific merchant. Note that this differs from the
// definition of Slot, as it does not include merchant_id identifier.
message SlotTime {
// ID of the service. (required)
string service_id = 5;
// Start time of the appointment slot in seconds of UTC time since Unix epoch
// (required)
int64 start_sec = 1;
// Duration of the appointment slot in seconds (optional)
int64 duration_sec = 2;
// Opaque tag that identifies the availability slot and matches the value
// provided in the Availability Feed (optional)
string availability_tag = 3;
// The set of resources that specifies the appointment slot, e.g. by
// indicating the staff member and room selected by the user, or party size
// for dining slots (optional)
ResourceIds resource_ids = 4;
// Indicates whether bookings of this slot will be confirmed
// synchronously or asynchronously. (optional)
// An UNSPECIFIED value will be interpreted as synchronous.
ConfirmationMode confirmation_mode = 6;
}
SlotTimeAvailability
Если слоты не найдены, вернуть пустой ответ. Не возвращайте ошибку 400, вместо неё можно вернуть 204 или другой код 2xx. Это подтверждает, что ответ получен корректно.
message SlotTimeAvailability {
// The SlotTime for which availability was checked.
SlotTime slot_time = 1;
// Whether the requested SlotTime is available
bool available = 2;
}
Примеры поиска BatchAvailabilityLookup
Загрузка страницы
Когда пользователь нажимает кнопку «Забронировать онлайн» , чтобы начать процесс бронирования, отправляется запрос BatchAvailabilityLookup
с известными доступными слотами для продавца. Для каждого слота, отправленного в запросе, ваш сервер бронирования возвращает ответ с актуальной текущей доступностью слота. В интерфейсе пользователя отображаются только доступные слоты.
Если пользователь изменит размер группы или выберет другую дату, можно отправить еще один запрос на загрузку страницы.
Запрос на загрузку страницы
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606469400"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606471200"
}
]
}
Ответ на загрузку страницы
{ "slot_time_availability" :
[
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606467600" }
},
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606469400" }
},
{
"available" : false,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606471200" }
}
]
}
щелчок слота
Когда пользователь выбирает доступный для бронирования слот, отправляется запрос BatchAvailabilityLookup
для этого слота. Ваш сервер бронирования возвращает ответ с актуальной текущей доступностью слота. Ожидаемый ответ — False , если этот слот забронирован другим пользователем Google, внутри вашей системы или между запросами загрузки страницы и нажатия на слот.
Запрос на щелчок слота
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
]
}
Ответ на щелчок слота
{
"slot_time_availability" : [
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
}
]
}
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-25 UTC.