Langkah 5: Update API real-time

Inventaris dalam sistem Anda berfluktuasi sepanjang hari karena pemesanan baru, pembatalan, dan perubahan jadwal dari penjual Anda. API update real-time adalah mekanisme untuk memberi tahu Google tentang perubahan ketersediaan inventaris ini. Anda juga dapat menggunakan update API real-time untuk memberi tahu Google tentang perubahan yang dilakukan pada pemesanan yang ada.

Update real-time dan feed API

Update real-time API digunakan untuk memberi tahu Google tentang perubahan bertahap pada ketersediaan inventaris dan pemesanan yang terjadi secara real-time. Selain update API real-time, kirim feed Ketersediaan lengkap setiap hari untuk memastikan bahwa Google memiliki pengetahuan yang paling akurat dan terbaru tentang ketersediaan yang ada di sistem Anda. Feed lengkap berfungsi sebagai snapshot status ketersediaan inventaris saat ini di sistem Anda.

Meskipun update API dapat digunakan untuk memperbarui informasi apa pun yang disediakan oleh feed, seperti informasi tentang penjual dan layanan, update tersebut biasanya hanya digunakan untuk memperbarui informasi ketersediaan.

API update real-time yang diperlukan

API update real-time (RTU)
BookingNotification Wajib Kirim RTU BookingNotification setiap kali ada perubahan pada pemesanan (mis., modifikasi atau pembatalan).
Availability Replace RTU Wajib bersyarat[1] Kirim RTU batch replace atau single replace untuk mengirim pembaruan ke ketersediaan inventaris. Mungkin perlu waktu beberapa menit agar perubahan diterapkan dan terlihat.
RTU Merchant Opsional Kirim RTU Merchant jika Anda ingin melakukan perubahan pada informasi penjual secara real-time. Perubahan mungkin memerlukan waktu beberapa jam untuk diterapkan dan ditampilkan.
RTU Service Opsional Kirim RTU Layanan jika Anda ingin melakukan perubahan pada informasi layanan secara real-time. Kasus penggunaan yang umum adalah jika harga layanan berfluktuasi secara dramatis selama hari tersebut, jadi sebaiknya terapkan RTU Layanan untuk menghindari kegagalan pesanan karena ketidaksesuaian harga. Perubahan mungkin memerlukan waktu beberapa jam untuk diterapkan dan ditampilkan.

RTU Availability Replace API

Gunakan Availability Replace API untuk memberikan pembaruan ketersediaan dalam kasus penggunaan berikut:

  • Seorang pengguna memesan reservasi di sistem Anda, sehingga slot ketersediaannya tidak lagi tersedia.
  • Penjual mengubah ketersediaannya di sistem Anda.
  • Seorang pengguna memesan reservasi melalui Google, sehingga slot ketersediaannya tidak lagi tersedia.
  • Reservasi yang dilakukan melalui Google dibatalkan di sisi Anda, misalnya, oleh penjual secara langsung. Anda perlu memperbarui pemesanan serta ketersediaannya karena slot asli sekarang tersedia lagi.
  • Panggilan BatchAvailabilityLookup server pemesanan menampilkan inventaris yang tidak cocok dengan inventaris sebenarnya.

Untuk mendapatkan informasi lebih lanjut, lihat referensi berikut:

RTU Booking Notification API

Booking Notification API memberi tahu Google tentang pembaruan pada pemesanan yang ada. Saat Anda mengirim pembaruan tentang pembatalan, hanya kirim informasi penting dalam permintaan dengan parameter kueri updateMask. Berikut ini contohnya:

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"}

Mengakses API

Membuat akun layanan

Gunakan tab Credentials di Konsol API Google untuk membuat akun layanan. Simpan kunci pribadi dalam format JSON di tempat yang aman. Saat membuat akun, Anda memiliki opsi untuk menetapkan peran ke "Pemilik".

Mengautentikasi Maps Booking API

Setelah membuat akun layanan, autentikasikan API berikut:

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

Untuk mengetahui panduan langkah demi langkah tentang cara melakukannya, lihat tutorial Mengautentikasi dengan Maps Booking API.

Menggunakan panggilan RESTful atau mendownload library klien

Sebaiknya lakukan panggilan RESTful langsung ke Maps Booking API dengan payload JSON. Untuk informasi selengkapnya, lihat dokumentasi REST API.

Anda juga dapat menggunakan library klien untuk terhubung ke API.

Bahasa Link download
Java Library klien Java. Untuk informasi selengkapnya, lihat petunjuk klien Java.

Support library tambahan tersedia untuk didownload yang menangani otorisasi dan aspek panggilan lainnya ke Google API. Jika diperlukan, lihat contoh ini.

Mengambil dokumen Discovery

Untuk beberapa library klien, seperti Ruby, Anda perlu mengambil dokumen Discovery untuk API, yang menjelaskan metode dan parameternya.

Gunakan perintah berikut untuk mengambil dokumen Discovery:

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

Untuk informasi selengkapnya tentang cara mengakses API dari Ruby, buka link berikut: Klien API Ruby dan Library Autentikasi Ruby.

Melakukan panggilan yang diotorisasi ke API

Saat Anda melakukan panggilan ke API, lihat Mempersiapkan untuk melakukan panggilan API yang diotorisasi guna memberikan otorisasi ke akun layanan Anda dengan kunci pribadi Anda dan cakupan OAuth berikut: https://www.googleapis.com/auth/mapsbooking.

Kuota API

Update API memiliki kuota 1.500 permintaan setiap 60 detik, atau rata-rata 25 permintaan per detik. Jika kuota terlampaui (yang dapat terjadi jika Anda belum menambahkan nomor Project Google Cloud yang benar di Partner Portal), Google akan merespons dengan pesan error berikut:

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

Untuk menanganinya, coba lakukan lagi panggilan pada beberapa interval yang ditingkatkan secara bertahap hingga berhasil. Jika Anda sering menghabiskan kuota dengan ReplaceServiceAvailability, beralihlah ke BatchReplaceServiceAvailabily untuk mengurangi jumlah panggilan API. Metode ini memungkinkan Anda memperbarui beberapa layanan dalam satu panggilan API.

Endpoint Sandbox dan Produksi

Anda dapat melakukan panggilan ke lingkungan sandbox dan produksi melalui API. Pastikan Anda telah mengaktifkan kedua API tersebut di project Google Cloud Anda. Kedua API ini menggunakan cakupan yang sama, tetapi memiliki endpoint yang berbeda.

Endpoint produksi: https://mapsbooking.googleapis.com/

Endpoint sandbox: https://partnerdev-mapsbooking.googleapis.com/

Berikut adalah contoh di Java tentang cara beralih endpoint:

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