5단계: 실시간 API 업데이트 구현

시스템의 인벤토리는 새로운 예약으로 인해 하루 동안 변동됩니다. 취소, 판매자의 변경 예약 등입니다. 실시간 업데이트 API는 이러한 인벤토리 변경사항을 Google에 알리는 메커니즘입니다. 제공되어야 합니다 또한 실시간 API 업데이트를 사용하여 기존 예약에 적용된 변경사항

API 실시간 업데이트 및 피드

API 실시간 업데이트는 실시간으로 발생하는 인벤토리 가용성 및 예약 또한 실시간 API 업데이트에 대응하고 전체 가용성 피드를 매일 전송하여 Google이 가용성에 대한 가장 정확하고 최신 정보를 가지고 있으므로 확인할 수 있습니다 완성된 피드는 현재 콘텐츠의 재고 상태를 확인할 수 있습니다

API 업데이트는 모든 정보를 업데이트하는 데 사용할 수 있지만 판매자 및 서비스에 대한 정보와 같이 피드에서 제공하는 경우 는 일반적으로 재고 정보를 업데이트하는 데만 사용됩니다.

필수 실시간 업데이트 API

실시간 업데이트(RTU) API
BookingNotification 필수 있을 때마다 BookingNotification RTU를 전송합니다. 예약 변경 (예: 수정 또는 취소)
이용 가능 여부 교체 RTU 조건부 필수[1] 다음 중 하나를 전송 일괄 교체 또는 단일 교체 RTU를 사용하여 인벤토리 가용성에 대한 업데이트를 전송합니다. 변경사항이 전파되고 반영되는 데 몇 분 정도 걸릴 수 있습니다.
판매자 RTU 선택사항 판매자를 변경하려면 판매자 RTU를 전송하세요. 정보를 실시간으로 제공합니다 변경사항이 적용되는 데 몇 시간 정도 걸릴 수 있습니다. 고민해 보세요
서비스 RTU 선택사항 서비스를 변경하려면 서비스 RTU를 전송하세요 정보를 실시간으로 제공합니다 일반적인 사용 사례는 서비스 RTU를 구현하는 것은 가격 불일치로 인한 주문 실패를 방지하는 것이 좋습니다. 변경될 수 있음 반영되고 반영되는 데 몇 시간이 걸릴 수 있습니다
<ph type="x-smartling-placeholder">

Availability Replace API RTU

Availability Replace API를 사용하여 다음 사용 사례를 참고하세요.

  • 사용자가 시스템에서 예약을 하므로 예약 가능 시간대가 더 오래 사용할 수 있습니다.
  • 판매자가 시스템에서 이용 가능 여부를 변경합니다.
  • 사용자가 Google을 통해 예약하므로 예약 가능 시간대가 더 오래 사용할 수 있습니다.
  • 예를 들어 Google을 통해 한 예약이 사용자 측에서 취소됩니다. 판매자에게 직접 문의하세요. 예약 및 원래 슬롯을 다시 사용할 수 있기 때문입니다.
  • 예약 서버 BatchAvailabilityLookup 호출이 반환됨 일치하지 않는 인벤토리를 찾을 수 있습니다

자세한 내용은 다음 리소스를 참고하세요.

예약 알림 API RTU

Booking Notification API는 기존 예약에 대한 업데이트 취소 관련 업데이트를 전송하는 경우 요청의 필수 정보만 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 형식으로 금고에 저장 있습니다. 계정을 만들 때 역할을 '소유자'

Maps Booking API 인증

서비스 계정을 만든 후 다음 API를 인증합니다.

  • Google Maps Booking API
  • Google Maps Booking API(Dev)

이를 위한 단계별 안내는 Maps Booking API로 인증 튜토리얼

RESTful 호출 사용 또는 클라이언트 라이브러리 다운로드

Maps Booking API에 직접 RESTful 호출을 실행하는 것이 좋습니다. JSON 페이로드를 사용합니다 자세한 내용은 REST API 문서

클라이언트 라이브러리를 사용하여 API에 연결할 수도 있습니다.

언어 다운로드 링크
자바 자바 클라이언트 라이브러리 자세한 내용은 자바 클라이언트 안내

추가 지원 라이브러리를 다운로드하여 Google API 호출의 승인 및 기타 측면을 처리합니다. 필요한 경우 살펴볼 항목 이 샘플을 참고하세요.

탐색 문서 가져오기

Ruby와 같은 일부 클라이언트 라이브러리의 경우, API의 검색 문서로서 메서드 및 매개변수입니다.

다음 명령어를 사용하여 검색 문서를 가져옵니다.

curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'

Ruby에서 API에 액세스하는 방법에 대한 자세한 내용은 다음 링크를 참조하세요. Ruby API 클라이언트Ruby 인증 라이브러리.

API에 대해 승인된 호출 실행

API를 호출할 때 다음을 참조하세요. 서비스 승인을 위해 승인된 API 호출 준비 계정에 연결할 수 있습니다. https://www.googleapis.com/auth/mapsbooking입니다.

API 할당량

API 업데이트의 할당량은 60초당 요청 1,500개 또는 요청 25회입니다. 1초에 한 번 더 자주 사용할 수 있습니다 할당량이 초과되면 (파트너 포털에 올바른 Google Cloud 프로젝트 번호를 추가하지 않은 경우에 발생할 수 있음) Google은 다음과 같은 오류 메시지가 표시됩니다.

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

이 문제를 처리하려면 성공합니다. 정기적으로 할당량을 소진한 경우 ReplaceServiceAvailability, 다음으로 전환 BatchReplaceServiceAvailabily: API 수를 줄입니다. 있습니다. 이 메서드를 사용하면 단일 API로 여러 서비스를 업데이트할 수 있습니다. 있습니다.

샌드박스 및 프로덕션 엔드포인트

다음 명령어를 통해 샌드박스와 프로덕션 환경을 모두 호출할 수 있습니다. 생성합니다. Google Cloud 프로젝트에서 두 API를 모두 사용 설정했는지 확인합니다. 두 API 모두 동일한 범위를 사용하지만 엔드포인트는 서로 다릅니다.

프로덕션 엔드포인트: https://mapsbooking.googleapis.com/

샌드박스 엔드포인트: https://partnerdev-mapsbooking.googleapis.com/

다음은 엔드포인트를 전환하는 방법의 자바로 작성된 예입니다.

    // 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()