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

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

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

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

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

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

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

Availability Replace API RTU

उपलब्धता की जानकारी अपडेट करने के लिए, Availability Replace API का इस्तेमाल करें. इसका इस्तेमाल इन मामलों में किया जा सकता है:

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

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

Booking Notification API RTU

Booking Notification API, 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 API की पुष्टि करना

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

  • Google Maps बुकिंग एपीआई
  • Google Maps Booking API (Dev)

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

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

हमारा सुझाव है कि आप JSON पेलोड के साथ, Maps Booking API को सीधे तौर पर 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 Client और Ruby Auth Library.

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

एपीआई को कॉल करते समय, अनुमति वाला एपीआई कॉल करने की तैयारी करना लेख पढ़ें. इससे आपको अपने सेवा खाते को निजी कुंजी और यहां दिए गए 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()