5. Adım: Gerçek zamanlı API güncellemelerini uygulama

Sisteminizdeki envanter, satıcılarınızın yeni rezervasyonları, iptalleri ve program değişiklikleri nedeniyle gün içinde dalgalanmalar gösterir. Gerçek zamanlı güncelleme API'si, envanter stok durumuyla ilgili bu değişiklikleri Google'a bildiren bir mekanizmadır. Mevcut rezervasyonlarda yapılan değişiklikleri Google'a bildirmek için gerçek zamanlı API güncellemelerini de kullanabilirsiniz.

API gerçek zamanlı güncellemeleri ve feed'leri

API gerçek zamanlı güncellemeleri, envanter stok durumu ve rezervasyonlarda gerçek zamanlı olarak gerçekleşen artımlı değişiklikleri Google'a bildirmek için kullanılır. Google'ın, stok durumuyla ilgili en doğru ve güncel bilgileri sisteminizden almasını sağlamak için gerçek zamanlı API güncellemelerine ek olarak eksiksiz stok durumu feed'lerini günlük olarak gönderin. Tam feed'ler, sisteminizde envanter stok durumunun mevcut durumunun anlık görüntüsüdür.

API güncellemeleri, feed'ler tarafından sağlanan tüm bilgileri (ör. satıcılar ve hizmetler hakkındaki bilgiler) güncellemek için kullanılabilir ancak genellikle yalnızca stok durumu bilgilerini güncellemek için kullanılır.

Gerekli gerçek zamanlı güncelleme API'leri

Gerçek zamanlı güncelleme (RTU) API'leri
BookingNotification Zorunlu Rezervasyonda değişiklik olduğunda (ör. değişiklik veya iptal) BookingNotification RTU'ları gönderin.
Müsaitlik durumu RTU'yu değiştir Koşullu olarak zorunlu[1] Envanter stok durumuyla ilgili güncellemeler göndermek için toplu değiştirme veya tek değiştirme RTU'ları gönderin. Değişikliklerin uygulanması ve yansıtılması birkaç dakikayı bulabilir.
Satıcı RTU İsteğe bağlı Satıcı bilgilerinde anında değişiklik yapmak istiyorsanız satıcı RTÜ'lerini gönderin. Değişikliklerin geçerlilik kazanması ve yansıtılması birkaç saati bulabilir.
Hizmet RTU İsteğe bağlı Hizmet bilgilerinde gerçek zamanlı olarak değişiklik yapmak istiyorsanız hizmet RTU'ları gönderin. Hizmet fiyatları gün içinde önemli ölçüde dalgalanıyorsa fiyat uyuşmazlığı nedeniyle sipariş hatalarının önüne geçmek için hizmet RTU'larının uygulanması önerilir. Değişikliklerin geçerlilik kazanması ve yansıtılması birkaç saati bulabilir.

Availability Replace API RTU

Aşağıdaki kullanım alanlarında stok durumu güncellemeleri sağlamak için Availability Replace API'yi kullanın:

  • Bir kullanıcı sisteminizde rezervasyon yaptığında müsaitlik durumu aralığı artık kullanılamaz.
  • Bir satıcı, sisteminizde müsaitlik durumunu değiştirir.
  • Bir kullanıcı Google üzerinden rezervasyon yaptığında müsaitlik durumu aralığı artık kullanılamaz.
  • Google üzerinden yapılan bir rezervasyon, sizin tarafınızda (ör. doğrudan satıcı tarafından) iptal edilir. Orijinal aralık tekrar kullanılabilir hâle geldiği için rezervasyonun yanı sıra müsaitlik durumunu da güncellemeniz gerekir.
  • Rezervasyon sunucusu BatchAvailabilityLookup çağrısı, gerçek envanterle eşleşmeyen envanter döndürüyor.

Daha fazla bilgi için aşağıdaki kaynaklara göz atın:

Rezervasyon Bildirimi API'si RTU

Rezervasyon Bildirimi API'leri, mevcut rezervasyonlarda yapılan güncellemeler hakkında Google'ı bilgilendirir. İptallerle ilgili güncelleme gönderirken updateMask sorgu parametresini kullanarak yalnızca istekteki temel bilgileri gönderin. Örnek:

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'ye erişme

Hizmet hesabı oluşturma

Hizmet hesabı oluşturmak için Google API Konsolu'ndaki Kimlik Bilgileri sekmesini kullanın. Özel anahtarı JSON biçiminde güvenli bir yerde saklayın. Hesabı oluştururken rolü "Sahip" olarak ayarlayabilirsiniz.

Maps Booking API'lerinin kimliğini doğrulama

Hizmet hesabı oluşturduktan sonra aşağıdaki API'lerin kimliğini doğrulayın:

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

Bunun nasıl yapılacağına dair adım adım açıklamalı bir kılavuz için Maps Booking API ile kimlik doğrulama eğitimine bakın.

RESTful çağrıları kullanın veya istemci kitaplığını indirin

JSON yükleriyle doğrudan Haritalar Rezervasyon API'sine RESTful çağrılar yapmanızı öneririz. Daha fazla bilgi için REST API belgelerine bakın.

API'ye bağlanmak için istemci kitaplıklarını da kullanabilirsiniz.

Dil İndirme bağlantısı
Java Java istemci kitaplığı. Daha fazla bilgi için Java istemci talimatlarını inceleyin.

Google API'lerine yapılan çağrıların yetkilendirmesini ve diğer yönlerini ele alan ek destek kitaplıkları indirilebilir. Gerekirse bu örneklere göz atın.

Keşif dokümanı getirme

Ruby gibi bazı istemci kitaplıkları için API'nin yöntemlerini ve parametrelerini açıklayan API Discovery belgesini getirmeniz gerekir.

Discovery belgesini almak için aşağıdaki komutu kullanın:

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

API'ye Ruby'den erişim hakkında daha fazla bilgi için şu bağlantıları takip edin: Ruby API İstemcisi ve Ruby Kimlik Doğrulama Kitaplığı.

API'ye yetkili çağrılar yapma

API'ye çağrı gönderirken hizmet hesabınızı özel anahtarınız ve aşağıdaki OAuth kapsamıyla yetkilendirmek için Yetkili bir API çağrısı yapmaya hazırlanma başlıklı makaleyi inceleyin: https://www.googleapis.com/auth/mapsbooking.

API kotaları

API güncellemelerinin kotası 60 saniyede 1.500 istek veya ortalama saniye başına 25 istektir. Bir kota aşıldığında (bu durum, İş Ortağı Portalınıza doğru Google Cloud proje numarasını eklemediğiniz durumlarda ortaya çıkabilir) Google aşağıdaki hata mesajını döndürür:

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

Bu sorunu çözmek için, başarılı olana kadar çağrıyı katlanarak daha büyük aralıklarla tekrar deneyin. ReplaceServiceAvailability ile kotayı düzenli olarak tüketiyorsanız API çağrılarının sayısını azaltmak için BatchReplaceServiceAvailabily'e geçin. Bu yöntem, tek bir API çağrısında birden fazla hizmeti güncellemenize olanak tanır.

Korumalı Alan ve Üretim Uç Noktaları

API üzerinden hem korumalı alan hem de üretim ortamlarına çağrı gönderebilirsiniz. Google Cloud projenizde her iki API'yi de etkinleştirdiğinizden emin olun. Bu API'lerin ikisi de aynı kapsamı kullanır ancak farklı uç noktalara sahiptir.

Üretim uç noktası: https://mapsbooking.googleapis.com/

Korumalı alan uç noktası: https://partnerdev-mapsbooking.googleapis.com/

Aşağıda, uç noktalar arasında geçiş yapmayla ilgili Java örneği verilmiştir:

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