Kho hàng trong hệ thống của bạn biến động trong suốt cả ngày do các lượt đặt phòng mới, lượt huỷ và thay đổi lịch trình của người bán. API cập nhật theo thời gian thực là một cơ chế để thông báo cho Google về những thay đổi này trong tình trạng còn hàng. Bạn cũng có thể sử dụng nội dung cập nhật API theo thời gian thực để thông báo cho Google về những thay đổi đối với các lượt đặt phòng hiện có.
Nguồn cấp dữ liệu và thông tin cập nhật theo thời gian thực của API
Các bản cập nhật theo thời gian thực của API được dùng để thông báo cho Google về những thay đổi gia tăng đối với tình trạng còn hàng và lượt đặt phòng khi những thay đổi đó xảy ra theo thời gian thực. Ngoài việc cập nhật API theo thời gian thực, hãy gửi nguồn cấp dữ liệu đầy đủ về tình trạng còn hàng hằng ngày để đảm bảo rằng Google có thông tin chính xác và mới nhất về tình trạng còn hàng như trong hệ thống của bạn. Nguồn cấp dữ liệu đầy đủ đóng vai trò là ảnh chụp nhanh về trạng thái hiện tại của tình trạng còn hàng trong hệ thống của bạn.
Mặc dù bạn có thể dùng các bản cập nhật API để cập nhật mọi thông tin do nguồn cấp dữ liệu cung cấp, chẳng hạn như thông tin về người bán và dịch vụ, nhưng thông thường, bạn chỉ dùng các bản cập nhật này để cập nhật thông tin về tình trạng còn hàng.
API bắt buộc để cập nhật theo thời gian thực
API cập nhật theo thời gian thực (RTU) | ||
---|---|---|
BookingNotification | Bắt buộc | Gửi RTU BookingNotification bất cứ khi nào có thay đổi đối với yêu cầu đặt phòng (ví dụ: sửa đổi hoặc huỷ). |
Thay thế RTU về tình trạng còn hàng | Bắt buộc có điều kiện[1] | Gửi RTU thay thế hàng loạt hoặc thay thế đơn lẻ để gửi thông tin cập nhật về tình trạng còn hàng. Có thể mất vài phút để các thay đổi có hiệu lực và xuất hiện. |
RTU của người bán | Không bắt buộc | Gửi RTU của người bán nếu bạn muốn thay đổi thông tin người bán theo thời gian thực. Có thể mất vài giờ để các thay đổi có hiệu lực và xuất hiện. |
RTU dịch vụ | Không bắt buộc | Gửi RTU dịch vụ nếu bạn muốn thay đổi thông tin dịch vụ theo thời gian thực. Một trường hợp sử dụng phổ biến là nếu giá dịch vụ biến động đáng kể trong ngày, bạn nên triển khai RTU dịch vụ để tránh lỗi đặt hàng do giá không khớp. Có thể mất vài giờ để các thay đổi có hiệu lực và xuất hiện. |
Availability Replace API RTU
Sử dụng Availability Replace API để cung cấp thông tin cập nhật về tình trạng còn hàng trong các trường hợp sử dụng sau:
- Người dùng đặt chỗ trên hệ thống của bạn, vì vậy, khung giờ còn trống không còn nữa.
- Người bán thay đổi trạng thái còn hàng trong hệ thống của bạn.
- Người dùng đặt chỗ qua Google, nên khung giờ còn trống không còn nữa.
- Bạn huỷ một lượt đặt chỗ được thực hiện thông qua Google, ví dụ: người bán huỷ trực tiếp. Bạn cần cập nhật thông tin đặt chỗ cũng như tình trạng còn chỗ, vì khung giờ ban đầu hiện đã có thể đặt chỗ trở lại.
- Lệnh gọi
BatchAvailabilityLookup
của máy chủ đặt phòng trả về khoảng không quảng cáo không khớp với khoảng không quảng cáo thực tế.
Để biết thêm thông tin, hãy tham khảo các tài nguyên sau:
- Hướng dẫn: cách cấu trúc thông tin cập nhật theo thời gian thực
- Ví dụ về ứng dụng Java để cập nhật theo thời gian thực bằng cách sử dụng các lệnh gọi RESTful
- Trang tài liệu tham khảo Inventory Update API
Điều khoản sử dụng Booking Notification API
Booking Notification API thông báo cho Google về các nội dung cập nhật đối với thông tin đặt chỗ hiện tại. Khi bạn gửi thông tin cập nhật về việc huỷ, hãy chỉ gửi thông tin cần thiết trong yêu cầu bằng tham số truy vấn updateMask
. Dưới đây là ví dụ:
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"}
Truy cập vào API
Tạo một tài khoản dịch vụ
Sử dụng thẻ Thông tin xác thực trong Bảng điều khiển API của Google để tạo tài khoản dịch vụ. Lưu trữ khoá riêng tư ở định dạng JSON tại một nơi an toàn. Khi tạo tài khoản, bạn có thể đặt vai trò thành "Chủ sở hữu".
Xác thực API Đặt chỗ trên Maps
Sau khi tạo tài khoản dịch vụ, hãy xác thực các API sau:
- API Đặt chỗ trên Google Maps
- API Đặt chỗ trên Google Maps (Dev)
Để xem hướng dẫn từng bước về cách thực hiện việc này, hãy tham khảo hướng dẫn Xác thực bằng Maps Booking API.
Sử dụng các lệnh gọi RESTful hoặc tải thư viện ứng dụng xuống
Bạn nên thực hiện các lệnh gọi RESTful trực tiếp đến Maps Booking API bằng tải trọng JSON. Để biết thêm thông tin, hãy xem tài liệu về API REST.
Bạn cũng có thể dùng thư viện ứng dụng để kết nối với API.
Ngôn ngữ | Đường liên kết để tải xuống |
---|---|
Java | Thư viện ứng dụng Java. Để biết thêm thông tin, hãy xem hướng dẫn về ứng dụng Java. |
Bạn có thể tải thêm các thư viện hỗ trợ để xử lý việc uỷ quyền và các khía cạnh khác của lệnh gọi đến API của Google. Nếu cần, hãy xem các mẫu này.
Tìm nạp tài liệu Khám phá
Đối với một số thư viện ứng dụng, chẳng hạn như Ruby, bạn cần tìm nạp tài liệu Discovery cho API. Tài liệu này mô tả các phương thức và tham số của API.
Sử dụng lệnh sau để tìm nạp tài liệu Khám phá:
curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'
Để biết thêm thông tin về cách truy cập vào API từ Ruby, hãy truy cập vào các đường liên kết sau: Ứng dụng API Ruby và Thư viện uỷ quyền Ruby.
Thực hiện các lệnh gọi được uỷ quyền đến API
Khi bạn thực hiện các lệnh gọi đến API, hãy tham khảo bài viết Chuẩn bị thực hiện lệnh gọi API được uỷ quyền để uỷ quyền cho tài khoản dịch vụ bằng khoá riêng tư và phạm vi OAuth sau đây: https://www.googleapis.com/auth/mapsbooking
.
Hạn mức API
API cập nhật có hạn mức là 1.500 yêu cầu mỗi 60 giây hoặc trung bình 25 yêu cầu mỗi giây. Khi bạn vượt quá hạn mức (có thể xảy ra khi bạn chưa thêm đúng số dự án Google Cloud vào Cổng đối tác), Google sẽ phản hồi bằng thông báo lỗi sau:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
Để xử lý việc này, hãy thử lại lệnh gọi theo các khoảng thời gian lớn hơn theo cấp số nhân cho đến khi thành công. Nếu bạn thường xuyên sử dụng hết hạn mức với ReplaceServiceAvailability
, hãy chuyển sang BatchReplaceServiceAvailabily
để giảm số lượng lệnh gọi API. Phương thức này cho phép bạn cập nhật nhiều dịch vụ trong một lệnh gọi API duy nhất.
Điểm cuối của hộp cát và điểm cuối của sản xuất
Bạn có thể gọi đến cả môi trường hộp cát và môi trường sản xuất thông qua API. Hãy nhớ bật cả hai API này trong dự án Google Cloud của bạn. Cả hai API này đều sử dụng cùng một phạm vi, nhưng có các điểm cuối khác nhau.
Điểm cuối phát hành công khai: https://mapsbooking.googleapis.com/
Điểm cuối hộp cát: https://partnerdev-mapsbooking.googleapis.com/
Sau đây là ví dụ về cách chuyển đổi điểm cuối trong 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()