Запасы в вашей системе колеблются в течение дня из-за новых бронирований, отмен и изменений расписания ваших продавцов. API обновления в реальном времени – это механизм уведомления Google об изменениях в наличии ресурсов. Вы также можете использовать обновления API в режиме реального времени, чтобы уведомлять Google об изменениях, внесенных в существующие бронирования.
Обновления и каналы API в реальном времени
Обновления API в реальном времени используются для уведомления Google о дополнительных изменениях в наличии инвентаря и бронированиях по мере их возникновения в режиме реального времени. Помимо обновлений API в режиме реального времени, ежедневно отправляйте полные каналы доступности, чтобы гарантировать, что Google имеет наиболее точные и актуальные сведения о доступности, существующие в вашей системе. Полные каналы служат моментальным снимком текущего состояния наличия запасов в вашей системе.
Хотя обновления API можно использовать для обновления любой информации, предоставляемой фидами, например информации о продавцах и услугах, обычно они используются только для обновления информации о доступности.
Требуемые API обновления в реальном времени
API обновления в реальном времени (RTU) | ||
---|---|---|
Уведомление о бронировании | Обязательный | Отправляйте RTU BookingNotification каждый раз, когда в бронировании происходят изменения (например, модификации или отмены). |
Наличие Заменить RTU | Условно требуется[1] | Отправьте пакетную замену или однократную замену RTU, чтобы отправить обновления о наличии запасов. Для распространения и отражения изменений может потребоваться несколько минут. |
Торговец РТУ | Необязательный | Отправляйте RTU продавцам, если вы хотите вносить изменения в информацию о продавце в режиме реального времени. Для распространения и отражения изменений может потребоваться несколько часов. |
Сервис РТУ | Необязательный | Отправляйте сервисные RTU, если вы хотите вносить изменения в сервисную информацию в режиме реального времени. Распространенный вариант использования: если цены на услуги сильно колеблются в течение дня, рекомендуется внедрить сервисные RTU, чтобы избежать сбоев заказов из-за несоответствия цен. Для распространения и отражения изменений может потребоваться несколько часов. |
Наличие Заменить API RTU
Используйте API замены доступности для предоставления обновлений доступности в следующих случаях:
- Пользователь бронирует бронирование в вашей системе, поэтому слот доступности больше не доступен.
- Продавец меняет их доступность в вашей системе.
- Пользователь бронирует бронирование через Google, поэтому слот доступности больше не доступен.
- Бронирование, сделанное через Google, отменяется на вашей стороне, например, напрямую продавцом. Вам необходимо обновить бронирование, а также наличие мест, поскольку исходный слот теперь снова доступен.
- Вызов
BatchAvailabilityLookup
сервера бронирования возвращает инвентарь, который не соответствует фактическому инвентарю.
Для получения дополнительной информации обратитесь к следующим ресурсам:
- Учебное пособие: как структурировать обновления в реальном времени
- Пример Java-клиента для обновлений в реальном времени с использованием вызовов RESTful
- Справочная страница API обновления инвентаря
API уведомлений о бронировании RTU
API-интерфейсы уведомлений о бронировании уведомляют Google об обновлениях существующих бронирований. Когда вы отправляете обновление об отмене, отправляйте в запросе только необходимую информацию с параметром запроса updateMask
. Вот пример:
Request: PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status Body: {"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}
Доступ к API
Создать учетную запись службы
Используйте вкладку «Учетные данные» в консоли Google API, чтобы создать учетную запись службы . Сохраните закрытый ключ в формате JSON в надежном месте. При создании учетной записи у вас есть возможность установить роль «Владелец».
Аутентификация API бронирования Карт
После создания учетной записи службы выполните аутентификацию следующих API:
- API бронирования Карт Google
- API бронирования Google Maps (для разработчиков)
Пошаговое руководство о том, как это сделать, можно найти в руководстве «Аутентификация с помощью Maps Booking API» .
Используйте вызовы RESTful или загрузите клиентскую библиотеку.
Мы рекомендуем выполнять вызовы RESTful непосредственно к Maps Booking API с полезными данными JSON. Дополнительную информацию см. в документации REST API .
Вы также можете использовать клиентские библиотеки для подключения к API.
Язык | Ссылка для скачивания |
---|---|
Ява | Клиентская библиотека Java . Дополнительную информацию см. в инструкциях к Java-клиенту . |
Для загрузки доступны дополнительные библиотеки поддержки , которые обрабатывают авторизацию и другие аспекты вызовов API Google. При необходимости взгляните на эти образцы .
Получить документ Discovery
Для некоторых клиентских библиотек, таких как Ruby, необходимо получить документ Discovery для API, в котором описаны его методы и параметры.
Используйте следующую команду для получения документа Discovery:
curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'
Для получения дополнительной информации о доступе к API из Ruby перейдите по этим ссылкам: Клиент API Ruby и Библиотека аутентификации Ruby .
Выполнять авторизованные вызовы API
При вызове API см. раздел Подготовка к авторизованному вызову API, чтобы авторизовать свою учетную запись службы с помощью закрытого ключа и следующей области OAuth: https://www.googleapis.com/auth/mapsbooking
.
API-квоты
Обновления API имеют квоту в 1500 запросов каждые 60 секунд или в среднем 25 запросов в секунду. При превышении квоты (что может произойти, если вы не добавили правильный номер проекта Google Cloud на партнерский портал) Google отвечает следующим сообщением об ошибке:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
Чтобы справиться с этим, повторите вызов снова с экспоненциально большими интервалами, пока он не увенчается успехом. Если вы регулярно исчерпываете квоту с помощью ReplaceServiceAvailability
, переключитесь на BatchReplaceServiceAvailabily
чтобы уменьшить количество вызовов API. Этот метод позволяет обновлять несколько сервисов за один вызов API.
Песочница и рабочие конечные точки
Через API вы можете совершать вызовы как в песочницу, так и в производственную среду. Убедитесь, что вы включили оба API в своем проекте Google Cloud. Оба этих API используют одну и ту же область действия, но имеют разные конечные точки.
Конечная точка производства: https://mapsbooking.googleapis.com/
Конечная точка песочницы: https://partnerdev-mapsbooking.googleapis.com/
Ниже приведен пример на Java того, как переключать конечные точки:
// This block of code is for OAuth and is the same for prod and sandbox. GoogleCredential .fromStream(new FileInputStream(...)) .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking")) // This block of code sets the endpoint. This is what you'd change to connect to the sandbox. new GoogleMapsBookingAPI.Builder(...) .setApplicationName(...) .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev. .build()