पांचवां चरण: रीयल-टाइम एपीआई अपडेट

कारोबारियों या कंपनियों की ओर से नई बुकिंग, रद्द करने, और शेड्यूल में बदलाव करने की वजह से, आपके सिस्टम में इन्वेंट्री में पूरे दिन उतार-चढ़ाव होता रहता है. रीयल-टाइम अपडेट एपीआई, इन्वेंट्री की उपलब्धता में हुए इन बदलावों के बारे में Google को सूचना देने का एक तरीका है. रीयल-टाइम एपीआई अपडेट का इस्तेमाल करके भी, Google को मौजूदा बुकिंग में किए गए बदलावों के बारे में सूचना दी जा सकती है.

एपीआई के रीयल-टाइम अपडेट और फ़ीड

एपीआई के रीयल-टाइम अपडेट का इस्तेमाल, इन्वेंट्री की उपलब्धता और बुकिंग में होने वाले बदलावों के बारे में Google को सूचना देने के लिए किया जाता है. ये बदलाव रीयल-टाइम में होते हैं. एपीआई के ज़रिए रीयल-टाइम में मिलने वाले अपडेट के अलावा, हर दिन उपलब्धता के बारे में पूरी जानकारी देने वाले फ़ीड भेजें. इससे यह पक्का किया जा सकेगा कि Google के पास, आपके सिस्टम में मौजूद उपलब्धता की सबसे सटीक और अप-टू-डेट जानकारी हो. पूरे फ़ीड, आपके सिस्टम में इन्वेंट्री की उपलब्धता की मौजूदा स्थिति के स्नैपशॉट के तौर पर काम करते हैं.

एपीआई अपडेट का इस्तेमाल, फ़ीड से मिली किसी भी जानकारी को अपडेट करने के लिए किया जा सकता है. जैसे, कारोबारियों और सेवाओं की जानकारी. हालांकि, आम तौर पर इनका इस्तेमाल सिर्फ़ उपलब्धता की जानकारी को अपडेट करने के लिए किया जाता है.

रीयल-टाइम अपडेट के लिए ज़रूरी एपीआई

रीयल-टाइम अपडेट (आरटीयू) एपीआई
BookingNotification ज़रूरी है जब भी बुकिंग में कोई बदलाव हो, तो BookingNotification RTU भेजें. जैसे, बुकिंग में बदलाव करना या रद्द करना.
उपलब्धता की जानकारी बदलने के लिए RTU कुछ शर्तों के मुताबिक ज़रूरी है[1] इन्वेंट्री की खरीदारी के लिए उपलब्धता से जुड़े अपडेट भेजने के लिए, एक साथ कई वैल्यू बदलने या एक वैल्यू बदलने वाले आरटीयू भेजें. बदलावों को लागू होने और दिखने में कुछ मिनट लग सकते हैं.
व्यापारी/कंपनी/कारोबारी का आरटीयू वैकल्पिक अगर आपको कारोबारी की जानकारी में रीयल-टाइम में बदलाव करने हैं, तो कारोबारी के आरटीयू भेजें. बदलावों को लागू होने और दिखने में कुछ घंटे लग सकते हैं.
सेवा RTU वैकल्पिक अगर आपको सेवा की जानकारी में रीयल-टाइम में बदलाव करने हैं, तो सेवा के आरटीयू भेजें. आम तौर पर, अगर सेवा की कीमतें दिन भर में काफ़ी उतार-चढ़ाव करती हैं, तो हमारा सुझाव है कि आप सेवा के आरटीयू लागू करें. इससे, कीमत मेल न खाने की वजह से ऑर्डर अस्वीकार होने से बचा जा सकता है. बदलावों को लागू होने और दिखने में कई घंटे लग सकते हैं.

Availability Replace API RTU

उपलब्धता की जानकारी बदलने वाले एपीआई का इस्तेमाल करके, इन इस्तेमाल के उदाहरणों में उपलब्धता की जानकारी अपडेट करें:

  • कोई उपयोगकर्ता आपके सिस्टम पर बुकिंग करता है, इसलिए उपलब्धता स्लॉट अब उपलब्ध नहीं है.
  • व्यापारी/कंपनी आपके सिस्टम में अपनी उपलब्धता की जानकारी बदलती है.
  • कोई उपयोगकर्ता Google के ज़रिए बुकिंग करता है, इसलिए उपलब्धता स्लॉट अब उपलब्ध नहीं है.
  • Google के ज़रिए की गई बुकिंग को आपने रद्द कर दिया हो. उदाहरण के लिए, व्यापारी/कंपनी ने सीधे तौर पर बुकिंग रद्द की हो. आपको बुकिंग के साथ-साथ, उपलब्धता की जानकारी भी अपडेट करनी होगी, क्योंकि मूल स्लॉट अब फिर से उपलब्ध है.
  • बुकिंग सर्वर BatchAvailabilityLookup कॉल से ऐसी इन्वेंट्री मिलती है जो असल इन्वेंट्री से मेल नहीं खाती.

ज़्यादा जानकारी के लिए, यहां दिए गए लेख पढ़ें:

Booking Notification API RTU

बुकिंग की सूचना देने वाले एपीआई, मौजूदा बुकिंग के अपडेट के बारे में 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"}

एपीआई को ऐक्सेस करना

सेवा खाता बनाना

सेवा खाता बनाने के लिए, Google API Console में क्रेडेंशियल टैब का इस्तेमाल करें. निजी कुंजी को JSON फ़ॉर्मैट में किसी सुरक्षित जगह पर सेव करें. खाता बनाते समय, आपके पास भूमिका को "मालिक" पर सेट करने का विकल्प होता है.

Maps Booking APIs की पुष्टि करना

सेवा खाता बनाने के बाद, इन एपीआई की पुष्टि करें:

  • Google Maps बुकिंग एपीआई
  • Google Maps Booking API (डेवलपर)

ऐसा करने का सिलसिलेवार तरीका जानने के लिए, Maps Booking API की मदद से पुष्टि करने वाला ट्यूटोरियल देखें.

RESTful कॉल का इस्तेमाल करना या क्लाइंट लाइब्रेरी डाउनलोड करना

हमारा सुझाव है कि आप सीधे तौर पर Maps Booking API के लिए, JSON पेलोड के साथ RESTful कॉल करें. ज़्यादा जानकारी के लिए, REST API का दस्तावेज़ देखें.

एपीआई से कनेक्ट करने के लिए, क्लाइंट लाइब्रेरी का भी इस्तेमाल किया जा सकता है.

भाषा डाउनलोड करने का लिंक
Java Java क्लाइंट लाइब्रेरी. ज़्यादा जानकारी के लिए, Java क्लाइंट के लिए निर्देश देखें.

डाउनलोड करने के लिए, ऐसी अन्य सहायता लाइब्रेरी उपलब्ध हैं जो Google API के कॉल की अनुमति और अन्य पहलुओं को मैनेज करती हैं. अगर ज़रूरी हो, तो इन सैंपल पर एक नज़र डालें.

डिस्कवरी दस्तावेज़ को फ़ेच करना

Ruby जैसी कुछ क्लाइंट लाइब्रेरी के लिए, एपीआई का डिस्कवरी दस्तावेज़ फ़ेच करना ज़रूरी है. इस दस्तावेज़ में, एपीआई के तरीकों और पैरामीटर के बारे में बताया गया होता है.

डिस्कवरी दस्तावेज़ को फ़ेच करने के लिए, यह कमांड इस्तेमाल करें:

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

Ruby से एपीआई को ऐक्सेस करने के बारे में ज़्यादा जानने के लिए, इन लिंक पर जाएं: Ruby API क्लाइंट और Ruby Auth लाइब्रेरी.

एपीआई को अनुमति वाले कॉल करना

एपीआई को कॉल करते समय, अपनी निजी कुंजी और यहां दिए गए OAuth दायरे की मदद से, अपने सेवा खाते को अनुमति देने के लिए, अनुमति वाला एपीआई कॉल करने की तैयारी करना लेख पढ़ें: https://www.googleapis.com/auth/mapsbooking.

एपीआई कोटा

एपीआई अपडेट के लिए,हर 60 सेकंड में 1, 500 अनुरोध या औसतन हर सेकंड 25 अनुरोध का कोटा होता है. कोटा खत्म होने पर, Google आपको गड़बड़ी का यह मैसेज भेजता है: ऐसा तब हो सकता है, जब आपने अपने Partner Portal में सही Google Cloud प्रोजेक्ट नंबर नहीं जोड़ा हो.

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

इसे ठीक करने के लिए, कॉल को फिर से तब तक आज़माएं, जब तक कि वह पूरा न हो जाए. अगर आपका कोटा अक्सर ReplaceServiceAvailability के साथ खत्म हो जाता है, तो एपीआई कॉल की संख्या कम करने के लिए, BatchReplaceServiceAvailabily पर स्विच करें. इस तरीके से, एक ही एपीआई कॉल में कई सेवाओं को अपडेट किया जा सकता है.

सैंडबॉक्स और प्रोडक्शन एंडपॉइंट

एपीआई की मदद से, सैंडबॉक्स और प्रोडक्शन, दोनों एनवायरमेंट पर कॉल किए जा सकते हैं. पक्का करें कि आपने अपने Google Cloud प्रोजेक्ट में दोनों एपीआई चालू किए हों. ये दोनों एपीआई एक ही स्कोप का इस्तेमाल करते हैं, लेकिन उनके एंडपॉइंट अलग-अलग होते हैं.

प्रोडक्शन एंडपॉइंट: 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()