इस दस्तावेज़ में, Travel Partner API और Price Feeds API जैसे होटल एपीआई को ऐक्सेस करते समय, अपने ऐप्लिकेशन में OAuth2.0 को सेट अप करने के लिए, सिलसिलेवार निर्देश दिए गए हैं. अपने ऐप्लिकेशन को अनुमति देने के लिए, Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना देखें.
OAuth 2.0 सेटअप करना
OAuth 2.0 के लिए ज़रूरी है कि आप अपने Google खाते से जुड़े सेवा खाते का इस्तेमाल करके अपनी पहचान करें. सेवा खाता, OAuth 2.0 ऐक्सेस टोकन के बदले आपकी निजी कुंजी भेजता है. इसके बाद, इस टोकन का इस्तेमाल, होटल के किराये के फ़ीड के बारे में रीड-ओनली डेटा के लिए, होटल एपीआई के कॉल में किया जा सकता है. जैसे, किराया, होटल, और गड़बड़ी की जानकारी देने वाली रिपोर्टिंग का डेटा.
ऐक्सेस टोकन एक घंटे (3,600 सेकंड) के लिए मान्य होते हैं.
अगर आपने पहले ClientLogin लागू किया है, तो OAuth 2.0 का तरीका भी ऐसा ही है. हालांकि, इनमें अंतर है:
- आपका ऐप्लिकेशन, एपीआई को ऐक्सेस करने के लिए Google के सेवा खाते का इस्तेमाल करता है.
- एपीआई को कॉल करते समय,
Authorization
एचटीटीपी हेडर में OAuth 2.0 ऐक्सेस टोकन पास किया जाता है.
किसी भी Hotels API के साथ OAuth 2.0 का इस्तेमाल करने के लिए, अपना खाता सेट अप करने के लिए यह तरीका अपनाएं:
इनमें से हर चरण के बारे में, नीचे दिए गए सेक्शन में बताया गया है.
पहला चरण: Google Cloud Console में नया प्रोजेक्ट बनाना
Google Cloud कंसोल का इस्तेमाल, आपके प्रोजेक्ट में इस्तेमाल किए जाने वाले Google API के ट्रैफ़िक डेटा, पुष्टि करने की प्रक्रिया, और बिलिंग की जानकारी को मैनेज करने और देखने के लिए किया जाता है.
Google Cloud Console में, प्रोजेक्ट, उस ऐप्लिकेशन की सेटिंग, क्रेडेंशियल, और मेटाडेटा का कलेक्शन होता है जिस पर काम किया जा रहा है. यह ऐप्लिकेशन, Google Developer API और Google Cloud के संसाधनों का इस्तेमाल करता है.
Google Cloud कंसोल का इस्तेमाल, एपीआई क्रेडेंशियल जनरेट करने, एपीआई चालू करने, और अपने प्रोजेक्ट से जुड़ी टीम और बिलिंग की जानकारी मैनेज करने के लिए भी किया जाता है.
Google Cloud Console में नया प्रोजेक्ट बनाने के लिए:
अपने Gmail या Google खाते में साइन इन करें.
Google Cloud Console खोलें. अगर यह आपका पहला प्रोजेक्ट है, तो मुख्य व्यू में प्रोजेक्ट बनाएं बटन दिखेगा:
प्रोजेक्ट बनाएं बटन पर क्लिक करें. Google Cloud Console, नया प्रोजेक्ट डायलॉग दिखाता है:
प्रोजेक्ट का नाम इनपुट फ़ील्ड में, अपने नए प्रोजेक्ट के लिए कोई आसान नाम डालें. फ़ील्ड के नीचे, Google Cloud Console आपके लिए एक प्रोजेक्ट आईडी जनरेट करता है. इससे यह पक्का होता है कि आईडी सभी प्रोजेक्ट के लिए यूनीक हो. उदाहरण के लिए, अगर आपने "मेरा नया प्रोजेक्ट" डाला है, तो Google Cloud Console
my-new-project-266022
जैसा आईडी असाइन करता है.नया प्रोजेक्ट बनाने के लिए, बनाएं बटन पर क्लिक करें.
नेविगेशन मेन्यू का इस्तेमाल करके, एपीआई और सेवाएं > डैशबोर्ड चुनें.
यहां दी गई इमेज में, Google Cloud Console के सबसे ऊपर बाईं ओर मौजूद नेविगेशन मेन्यू को दिखाया गया है. इससे आपके प्रोजेक्ट का डैशबोर्ड व्यू दिखता है:
ज़्यादा जानकारी के लिए, प्रोजेक्ट बनाना और मैनेज करना लेख पढ़ें.
दूसरा चरण: सेवा खाता बनाना और उसके क्रेडेंशियल जनरेट करना
सेवा खातों का इस्तेमाल, सर्वर-टू-सर्वर इंटरैक्शन के लिए किया जाता है. जैसे, वेब ऐप्लिकेशन और आपके होटल के डेटा के बीच इंटरैक्शन.
सेवा खाता बनाने और उसे कॉन्फ़िगर करने के लिए:
Google API Console के मुख्य व्यू में, बाईं ओर मौजूद नेविगेशन में क्रेडेंशियल पर क्लिक करें. Google Cloud Console में, क्रेडेंशियल व्यू दिखता है.
क्रेडेंशियल व्यू में, आपके प्रोजेक्ट के लिए क्लाइंट आईडी और क्रेडेंशियल दिखते हैं. OAuth 2.0 ऐक्सेस टोकन का अनुरोध करते समय, आपका ऐप्लिकेशन क्लाइंट आईडी का इस्तेमाल करता है. नए प्रोजेक्ट में अब तक कोई क्लाइंट या क्रेडेंशियल नहीं जोड़े गए हैं.
एपीआई और सेवाओं में क्रेडेंशियल लिंक पर क्लिक करें.
क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, फ़िल्टर से सेवा खाते की कुंजी चुनें. सेवा खाता कुंजी बनाएं व्यू दिखता है.
सेवा खाता फ़िल्टर में जाकर, नया सेवा खाता चुनें.
सेवा खाते का नाम और सेवा खाता आईडी डालें.
खाते का नाम अपनी पसंद के मुताबिक रखा जा सकता है. हालांकि, खाता आईडी सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. Google Cloud Console, आपके डाले गए नाम के आधार पर आपके लिए एक यूनीक खाता आईडी जनरेट करता है.
कुंजी के टाइप के लिए, JSON चुनें. JSON फ़ॉर्मैट में होना ज़रूरी है.
बनाएं बटन पर क्लिक करें. Google Cloud Console, आपके प्रोजेक्ट के लिए निजी या सार्वजनिक कुंजी का जोड़ा जनरेट करता है. निजी कुंजी, उस डिफ़ॉल्ट जगह पर सेव होती है जहां आपका ब्राउज़र डाउनलोड किए गए आइटम सेव करता है. आपको
.JSON
फ़ॉर्मैट की फ़ाइल डाउनलोड करनी होगी.निजी कुंजी का इस्तेमाल, अपनी स्क्रिप्ट या ऐसे अन्य ऐप्लिकेशन में किया जाता है जो आपके एपीआई को ऐक्सेस करते हैं.
कुंजियां जनरेट होने के बाद, Google Cloud Console "सेवा खाता बनाया गया" मैसेज दिखाता है.
ठीक है, समझ गया/गई बटन पर क्लिक करें. Google Cloud Console, आपको क्रेडेंशियल व्यू पर वापस ले जाता है. अपने सेवा खाते की जानकारी की पुष्टि करने और अपने प्रोजेक्ट से जुड़ा सेवा खाता देखने के लिए, इस व्यू में सेवा खाते मैनेज करें पर क्लिक करें.
सेवा खाते में अब ये क्रेडेंशियल जुड़े हुए हैं:
- क्लाइंट आईडी: यह एक यूनीक आइडेंटिफ़ायर होता है. OAuth 2.0 ऐक्सेस टोकन का अनुरोध करते समय, आपका ऐप्लिकेशन इसका इस्तेमाल करता है.
- ईमेल पता: सेवा खाते के लिए जनरेट किया गया ईमेल पता, जो "account_name@project_name.google.com.iam.gserviceaccount.com" फ़ॉर्मैट में होता है.
- सर्टिफ़िकेट के फ़िंगरप्रिंट: आपने जो निजी कुंजी डाउनलोड की है उसका आईडी.
ज़्यादा जानकारी के लिए, सर्वर से सर्वर ऐप्लिकेशन के लिए OAuth 2.0 का इस्तेमाल करना लेख पढ़ें.
तीसरा चरण: सेवा खाते को अपने Hotel Center डेटा का ऐक्सेस देना
आखिरी चरण में, नए सर्विस खाते को अपने Hotel Center का ऐक्सेस देना होता है. सेवा खाते की पहचान, जनरेट किए गए उस ईमेल पते से की जाती है जिसे आपने पिछले चरण में बनाया था. Hotel Center खाते को शेयर करने की सेटिंग का इस्तेमाल करके, इस खाते का ऐक्सेस दिया जाता है.
अगर आपके पास खाते में उपयोगकर्ताओं को जोड़ने का सही ऐक्सेस नहीं है, तो हमसे संपर्क करें फ़ॉर्म का इस्तेमाल करके, Google Hotels की टीम से संपर्क करें. साथ ही, अपने खाते के लिए मालिकाना हक सेट अप करने का अनुरोध करें. आपके पास, किसी मालिक को एक या उससे ज़्यादा ईमेल भेजने का अनुरोध करने का विकल्प होता है. Hotel Center को ऐक्सेस करने के बारे में ज़्यादा जानने के लिए, Hotel Center और Google Ads को लिंक करना लेख पढ़ें.
किसी सेवा खाते को अपने Hotel Center डेटा का ऐक्सेस देने के लिए:
नई ब्राउज़र विंडो में, Hotel Center खोलें.
शेयर करने का डायलॉग बॉक्स खोलने के लिए, Hotel Center by Google बैनर पर, 'उपयोगकर्ता जोड़ें' आइकॉन पर क्लिक करें.
ज़्यादा लोगों को जोड़ें फ़ील्ड में, उस सेवा खाते का ईमेल पता डालें जिसे आपको Hotel Center में जोड़ना है.
लोगों को सूचना दें विकल्प को चुना हुआ रखें.
फ़िल्टर सेक्शन में जाकर, मैनेज करें को चुनें.
न्योता भेजें बटन पर क्लिक करें.
Hotel Center में उपयोगकर्ताओं को जोड़ने के बाद, आपका सेवा खाता करीब 24 घंटे में, एपीआई ऐक्सेस के लिए चालू हो जाना चाहिए.
जब Google आपको सूचना देगा कि आपके सेवा खाते के लिए एपीआई का ऐक्सेस चालू है, तब OAuth 2.0 का इस्तेमाल करके एपीआई को ऐक्सेस किया जा सकता है.
OAuth 2.0 का इस्तेमाल करने का तरीका
एपीआई को ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को सेवा खाते से जनरेट किए गए ईमेल पते और निजी कुंजी की मदद से, Google को अपनी पहचान बतानी होगी. पुष्टि करने के Google के तरीके से, इस कुंजी को OAuth 2.0 ऐक्सेस टोकन के लिए बदल दिया जाता है. इस टोकन को आपके ऐप्लिकेशन के एपीआई कॉल में Authorization
हेडर में पास किया जाता है.
एपीआई कॉल करने के लिए तैयारी करना लेख पढ़ें.
स्कोप
Hotels API के लिए SCOPES
इस तरह के होते हैं:
Travel Partner API: "https://www.googleapis.com/auth/travelpartner"
Price Feeds API: "https://www.googleapis.com/auth/travel-partner-price-upload"
क्रेडेंशियल बनाते समय, आपको सेवा खाते की जानकारी देनी होगी. सेवा खाता बनाना और उसके क्रेडेंशियल जनरेट करना लेख पढ़ें.
ऐप्लिकेशन बनाते समय, एपीआई पासकोड का इस्तेमाल करके, ऐप्लिकेशन की पुष्टि करने के लिए सबसे सही तरीकों का पालन करना न भूलें. ज़्यादा जानें.
उदाहरण
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'
cred = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)
Travel Partner API
Travel Partner API की मदद से, होटल पार्टनर, बड़े या जटिल खातों को मैनेज करने के लिए, Hotel Center की जानकारी हासिल कर सकते हैं और Hotel Center का डेटा बदल सकते हैं.
अपने Travel Partner API के लिए अनुमति पाने के लिए, OAuth 2.0 सेटअप के निर्देशों का पालन करें.
Travel Partners API के लिए नया प्रोजेक्ट बनाते समय, आपको अपने नए Google Cloud Console प्रोजेक्ट का ऐक्सेस चालू करना होगा.
Travel Partners API का ऐक्सेस चालू करने के लिए, यह तरीका अपनाएं:
अपने प्रोजेक्ट के डैशबोर्ड व्यू पर जाएं.
एपीआई और सेवाएं चालू करें पर क्लिक करें. इससे, एपीआई लाइब्रेरी का वेलकम पेज दिखता है.
खोज फ़ील्ड में, "Travel Partner API" टाइप करना शुरू करें. इसके बाद, कंसोल आपको टाइप किए गए शब्द से मिलते-जुलते एपीआई की सूची दिखाएगा.
टेबल में मौजूद, मैच होने वाले एपीआई पर क्लिक करें. Google Cloud कंसोल, उस एपीआई के बारे में जानकारी दिखाता है.
अपने प्रोजेक्ट के लिए इस एपीआई को चालू करने के लिए, एपीआई चालू करें बटन पर क्लिक करें.
ज़्यादा जानकारी के लिए, सेवाओं को चालू और बंद करना लेख पढ़ें.
Travel Partner API अब आपके Google खाते के नए प्रोजेक्ट के लिए चालू हो गया है.
Travel Partner API का दायरा:
"https://www.googleapis.com/auth/travelpartner"
Travel Partner API का एंडपॉइंट यह है:
"https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
Price Feeds API
किराया फ़ीड एपीआई की मदद से, ठहरने की जगहों के पार्टनर हर होटल के लिए, पसंद के मुताबिक किराये का डेटा उपलब्ध करा सकते हैं. Google के साथ काम करने वाले होटल पार्टनर, Google पर किराये अपलोड करते समय, OAuth2.0 का इस्तेमाल करके अपनी पुष्टि कर सकते हैं और अनुमति दे सकते हैं. कीमत फ़ीड के एपीआई के लिए अनुमति पाने के लिए, OAuth 2.0 सेटअप करने के निर्देशों का पालन करें.
याद रखने वाली बातें
कीमत फ़ीड एपीआई के लिए, अनुमति देने के निर्देशों में अहम अंतरों पर ध्यान दें.
पार्टनर को Google Cloud Console में नया प्राइस फ़ीड OAuth2.0 प्रोजेक्ट बनाना चाहिए. इसके लिए, उन्हें OAuth 2.0 सेटअप में दिए गए निर्देशों का पालन करना होगा.
Google Cloud Console में कीमत फ़ीड एपीआई को चालू करना NOT नहीं है. इसे अनदेखा किया जा सकता है. आपको सिर्फ़ एक सेवा खाता और पासकोड चाहिए. इसके बाद, उसी सेवा खाते और पासकोड का इस्तेमाल करके, किराया फ़ीड प्रोजेक्ट को अपने Hotel Center डेटा का ऐक्सेस दें. अपने एपीआई को कॉन्फ़िगर करने के लिए, OAuth2.0 सेटअप में बताए गए बाकी चरणों को पूरा करें.
कीमत फ़ीड के लिए OAuth2.0 ऐक्सेस टोकन पाना
अगला चरण, सेवा खाते की कुंजी फ़ाइल का इस्तेमाल करके, ठहरने की जगह की कीमत अपलोड करने के दायरे के साथ OAuth2.0 ऐक्सेस टोकन पाना है. एपीआई को किसी दूसरे को सौंपने के लिए कॉल करने की तैयारी करना में दिए गए निर्देशों का पालन करके, अपने प्राइस फ़ीड प्रोजेक्ट के अनुरोधों को अनुमति दी जा सकती है. इसके बाद, हासिल किए गए क्रेडेंशियल से ऐक्सेस टोकन निकालें और उसे "Authorization"
एचटीटीपी हेडर में सेट करें.
होटल के किराये को अपलोड करने का दायरा:
"https://www.googleapis.com/auth/travel-partner-price-upload"
कीमतें अपलोड करना
ऐक्सेस टोकन मिलने के बाद, पार्टनर अपने किराये के फ़ीड को अपलोड कर सकते हैं. यह अपलोड करने का तरीका, पुष्टि और अनुमति के लिए स्टैटिक आईपी का इस्तेमाल करने जैसा ही है. हालांकि, इसमें ये बदलाव किए गए हैं:
"Authorization"
एचटीटीपी हेडर में ऐक्सेस टोकन सेट करना
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>
किराये के फ़ीड के एपीआई के लिए OAuth2.0 सेटअप की जांच करना
अपने OAuth2.0 सेटअप की जांच करने के लिए, किसी भी अपलोड पाथ पर खाली फ़ाइल या असल कीमतों का डेटा अपलोड करें. एचटीटीपी रिस्पॉन्स की स्थिति देखने के लिए, टेबल का इस्तेमाल करें.
एचटीटीपी रिस्पॉन्स का स्टेटस | मैसेज |
---|---|
200 | Successful (OK) |
401 | Service account creation or access token fetch was not successful |
403 | Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired |
समस्या का हल
क्या आपको कोई समस्या आ रही है? नीचे दिए गए आइटम की जांच करने से, समस्या हल हो सकती है.
- क्या आपने Google Cloud Console में कोई प्रोजेक्ट बनाया है?
- क्या आपने अपने प्रोजेक्ट में यह सेवा चालू की है?
- क्या आपने क्लाइंट आईडी बनाएं पर क्लिक करने और सेवा खाता चुनने के बाद,
.JSON
फ़ाइल—निजी पासकोड डाउनलोड की है? - क्या आपको इस फ़ॉर्म का सेवा खाता क्लाइंट आईडी ईमेल पता मिला है:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - क्या आपने इस खाते को शेयर करें बटन पर क्लिक करके, अपना Hotel Ads Center खाता सेवा खाते के साथ शेयर किया है?
- क्या आपने अपने तकनीकी खाता मैनेजर (टीएएम) को सेवा खाते का ईमेल पता और अपना पार्टनर आईडी भेजा है?
- क्या आपके एपीआई कॉल,
Authorization
हेडर में हाल ही में मिला टोकन पास कर रहे हैं? - क्या आपका टोकन एक घंटे से ज़्यादा पुराना है?
यहां दी गई टेबल में, कुछ सामान्य गड़बड़ियों और उन्हें ठीक करने के तरीकों के बारे में बताया गया है:
गड़बड़ी | ब्यौरा |
---|---|
Invalid credentials | इसका मतलब कई चीज़ों से हो सकता है. अगर आपको यह गड़बड़ी दिखती है, तो
देखें कि:
|
Not found | ऐसा हो सकता है कि आपका एंडपॉइंट गलत हो. देखें कि आपने GET अनुरोध सबमिट किया है या नहीं. साथ ही, यह भी देखें कि अनुरोध का यूआरएल मान्य है या नहीं. इसका मतलब है कि वह उस एपीआई सिंटैक्स के मुताबिक है जिसे ऐक्सेस किया जा रहा है. |
Invalid string value | एंडपॉइंट के एक या एक से ज़्यादा हिस्सों में अमान्य सिंटैक्स है. उदाहरण के लिए, हो सकता है कि आपने पाथ के किसी हिस्से को गलत लिखा हो. देखें कि आपने अपने पूरे पाथ में सही अंडरस्कोर, कैपिटल लेटर, और शब्दों का इस्तेमाल किया हो. |
Unsupported output format | यह गड़बड़ी, Reports API का इस्तेमाल करते समय सबसे ज़्यादा होती है. आपको अपने GET
अनुरोध के यूआरएल में "alt=csv" डालना होगा. Reports API, JSON के साथ काम नहीं करता. |
AccessTokenRefreshError/Invalid grant | ऐप्लिकेशन चलाते समय, यह गड़बड़ी इन वजहों से हो सकती है:
|
HotelAdsAPIConnection object has no attribute credentials | ऐप्लिकेशन चलाते समय, आपकी .JSON फ़ाइल का पाथ
गलत है. |
Invalid scope | ऐप्लिकेशन चलाते समय, आपका एपीआई स्कोप इनमें से कोई एक होना चाहिए:
|
Forbidden | आपने जिस खाता आईडी का इस्तेमाल किया है उसके ऐक्सेस की अनुमति आपके पास नहीं है. अगर आपके पास किसी सब-खाते का मालिकाना हक है, तो हो सकता है कि आपके पास माता-पिता या रूट खाते का आईडी ऐक्सेस करने की अनुमति न हो. |