इस दस्तावेज़ में, 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 ऐक्सेस टोकन पास करते हैं, तो कॉलिंग API.
किसी भी Hotels API के साथ OAuth 2.0 का इस्तेमाल करने के लिए, अपना खाता सेट अप करने के लिए ये काम करें कदम:
इनमें से हर चरण के बारे में आगे आने वाले सेक्शन में बताया गया है.
पहला चरण: नया Google Cloud Console प्रोजेक्ट बनाना
Google Cloud Console का इस्तेमाल, ट्रैफ़िक के डेटा को मैनेज करने और देखने के लिए किया जाता है. आपके प्रोजेक्ट के 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 कंसोल के मुख्य व्यू में, इसमें क्रेडेंशियल पर क्लिक करें: क्लिक करें. 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@account_name.google.com.iam.gserviceaccount.com".
- सर्टिफ़िकेट के फ़िंगरप्रिंट: उस निजी पासकोड का आईडी जिसे आपने सर्टिफ़िकेट दिया है डाउनलोड किया गया.
ज़्यादा जानकारी के लिए, सर्वर से सर्वर ऐप्लिकेशन के लिए OAuth 2.0 का इस्तेमाल करना देखें.
तीसरा चरण: सेवा खाते को अपने Hotel Center के डेटा का ऐक्सेस देना
आखिरी चरण में, नए सर्विस खाते को अपने Hotel Center का ऐक्सेस देना होता है. सेवा खाते की पहचान, जनरेट किए गए उस ईमेल पते से की जाती है जो जिन्हें आपने पिछले चरण में बनाया था. आप यहां दिए गए लिंक पर जाकर इस खाते को ऐक्सेस करने की अनुमति देते हैं: Hotel Center शेयर करने की सेटिंग में.
अगर आपके पास खाते में उपयोगकर्ताओं को जोड़ने का सही ऐक्सेस नहीं है, तो Google पर होटल मैनेज करने वाली टीम ने हमसे संपर्क करें फ़ॉर्म का इस्तेमाल करके, होटल का मालिकाना हक सेट अप करने का अनुरोध किया है आपका खाता. आप किसी मालिक को ईमेल भेजने के लिए, एक या उससे ज़्यादा ईमेल पाने का अनुरोध कर सकते हैं. Hotel Center के ऐक्सेस के बारे में ज़्यादा जानकारी के लिए, Hotel Center और Google Ads को लिंक करना लेख पढ़ें.
किसी सेवा खाते को अपने Hotel Center के डेटा का ऐक्सेस देने के लिए:
नई ब्राउज़र विंडो में, Hotel Center खोलें.
Hotel Center by Google बैनर में, 'उपयोगकर्ता जोड़ें' आइकॉन पर क्लिक करें शेयर करने के लिए डायलॉग बॉक्स.
ज़्यादा लोगों को जोड़ें फ़ील्ड में, सेवा का ईमेल पता डालें खाता जिसे अपने Hotel Center में जोड़ना है.
लोगों को सूचना दें विकल्प को चुनकर रखें.
फ़िल्टर से, मैनेज करें को चुनें.
न्योता दें बटन पर क्लिक करें.
Hotel Center में उपयोगकर्ताओं को जोड़ने के बाद, आपका सेवा खाता चालू हो जाना चाहिए ऐक्सेस करने के लिए 24 घंटे तक इंतज़ार कर सकते हैं.
जब Google आपको यह सूचना दे देता है कि आपकी सेवा के लिए एपीआई ऐक्सेस चालू किया गया है खाता, तो आप OAuth 2.0 के साथ API एक्सेस करना आरंभ कर सकते हैं.
OAuth 2.0 इस्तेमाल करने का तरीका
एपीआई को ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को
सेवा खाते में जनरेट किया गया ईमेल पता और निजी कुंजी होनी चाहिए. पुष्टि करने के Google के तरीके से, इस कुंजी को OAuth 2.0 ऐक्सेस टोकन के लिए बदल दिया जाता है. इस टोकन को ऐप्लिकेशन के एपीआई कॉल में Authorization
हेडर में पास किया जाता है.
किसी और को एपीआई कॉल करने की तैयारी करना लेख पढ़ें.
स्कोप
यहां होटल के लिए SCOPES
एपीआई के बारे में बताया गया है:
ट्रैवल पार्टनर एपीआई: "https://www.googleapis.com/auth/travelpartner"
ट्रैवल पार्टनर कीमतें एपीआई: "https://travelpartnerprices.googleapis.com"
कीमत फ़ीड एपीआई: "https://www.googleapis.com/auth/travel-partner-price-upload"
क्रेडेंशियल बनाते समय आपको सेवा खाते की जानकारी देनी होगी. इससे संदर्भ लें सेवा खाता बनाना और उसके क्रेडेंशियल जनरेट करना.
अपना ऐप्लिकेशन डेवलप करते समय, सबसे सही तरीके अपनाएं API कुंजियों का उपयोग करके अपने ऐप्लिकेशन को प्रमाणित करें. ज़्यादा जानें.
उदाहरण
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://travelpartnerprices.googleapis.com','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)
यात्रा सहयोगी API
ट्रैवल पार्टनर एपीआई की मदद से, होटल पार्टनर Hotel Center को वापस पा सकते हैं बड़े या कॉम्प्लेक्स खातों को मैनेज करने के लिए, Hotel Center के डेटा की जानकारी और उसमें बदलाव कर सकते हैं.
इसके लिए अनुमति पाने के लिए, OAUTH 2.0 सेटअप के निर्देशों का पालन करें आपका Travel Partner API.
Travel Partners API के लिए नया प्रोजेक्ट बनाते समय, आपको इसका ऐक्सेस चालू करना होगा आपके नए Google Cloud Console प्रोजेक्ट में.
Travel Partners API का ऐक्सेस चालू करने के लिए, यह तरीका अपनाएं:
अपने प्रोजेक्ट के डैशबोर्ड व्यू पर जाएं.
एपीआई और सेवाएं चालू करें पर क्लिक करें. इससे एपीआई लाइब्रेरी में वेलकम मैसेज दिखता है करें.
खोज फ़ील्ड में "ट्रैवल पार्टनर एपीआई" टाइप करें. इसके बाद, कंसोल एपीआई की ऐसी सूची दिखाता है जो आपके टाइप किए गए टेक्स्ट से मैच करती है.
टेबल में मौजूद उस एपीआई पर क्लिक करें जो मैच करता है. Google Cloud Console, एपीआई के बारे में जानकारी.
अपने प्रोजेक्ट के लिए इस एपीआई को चालू करने के लिए, एपीआई चालू करें बटन पर क्लिक करें.
ज़्यादा जानकारी के लिए, सेवाएं चालू और बंद करना देखें.
ट्रैवल पार्टनर एपीआई को अब आपके Google खाते के नए प्रोजेक्ट के लिए चालू कर दिया गया है.
ट्रैवल पार्टनर एपीआई का दायरा:
"https://www.googleapis.com/auth/travelpartner"
ट्रैवल पार्टनर एपीआई के लिए एंडपॉइंट यह है:
"https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
ट्रैवल पार्टनर प्राइस एपीआई
ट्रैवल पार्टनर प्राइस एपीआई, होटल पार्टनर को यह सुविधा देता है कि वे Google. इसे ठहरने की अवधि (कम अवधि) भी कहा जाता है.
इसके लिए अनुमति पाने के लिए, OAUTH 2.0 सेटअप के निर्देशों का पालन करें आपका ट्रैवल पार्टनर कीमतें एपीआई.
ट्रैवल पार्टनर प्राइस एपीआई के लिए कोई नया प्रोजेक्ट बनाते समय, आपको ये काम करने होंगे अपने नए Google Cloud Console प्रोजेक्ट का ऐक्सेस चालू करें. यह प्रोजेक्ट Travel Partner API में दिए गए निर्देश देखें.
ट्रैवल पार्टनर एपीआई में दिए गए चरण देखें और इसके विकल्प के तौर पर इस्तेमाल करें "ट्रैवल पार्टनर एपीआई" के सभी इंस्टेंस "ट्रैवल पार्टनर प्राइस एपीआई" से चालू करने के लिए आपका प्रोजेक्ट.
ट्रैवल पार्टनर प्राइस एपीआई का स्कोप:
"https://travelpartnerprices.googleapis.com"
ट्रैवल पार्टनर कीमतें एपीआई का अपलोड पाथ यह है:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
कीमत फ़ीड एपीआई
Price Feed API की मदद से, लॉजिंग पार्टनर हर होटल. पुष्टि करने और पुष्टि करने के लिए, Google के होटल पार्टनर OAuth2.0 का इस्तेमाल कर सकते हैं Google पर कीमतें अपलोड करते समय खुद को अधिकृत करते हैं. कीमत फ़ीड के एपीआई के लिए अनुमति पाने के लिए, OAuth 2.0 सेटअप करने के निर्देशों का पालन करें.
याद रखने वाली बातें
कीमत वाले फ़ीड के लिए अनुमति देने के निर्देशों में अहम अंतरों पर ध्यान दें एपीआई.
पार्टनर को कीमत फ़ीड का नया OAuth2.0 प्रोजेक्ट बनाना चाहिए OAuth 2.0 सेटअप में दिए गए निर्देशों का इस्तेमाल करके, Google Cloud Console में जाकर, उन निर्देशों का पालन करें जो Google Cloud Console में दिए गए हैं.
Google Cloud Console में Price Feed API को चालू करना ज़रूरी नहीं है और अनदेखा किया जा सकता है. आपको सिर्फ़ एक सेवा खाते की ज़रूरत होती है और दबाएं और फिर उसी का इस्तेमाल करें सेवा खाता और अपने होटल को कीमत में फ़ीड वाले प्रोजेक्ट का ऐक्सेस देने के लिए ज़रूरी कुंजी सेंटर डेटा. इसके लिए, 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
? - क्या आपने क्लिक करके, सेवा खाते के साथ अपना होटल विज्ञापन सेंटर खाता शेयर किया यह खाता शेयर करें बटन?
- क्या आपने सेवा खाते का ईमेल पता और अपना पार्टनर आईडी इस ईमेल पते पर भेजा है आपका तकनीकी खाता मैनेजर (टीएएम) है?
- क्या आपके एपीआई कॉल, हाल ही में हासिल किया गया टोकन पास कर रहे हैं
Authorization
हेडर? - क्या आपका टोकन 1 घंटे से ज़्यादा पुराना है?
यहां दी गई टेबल में कुछ आम गड़बड़ियों और उन्हें ठीक करने के तरीकों की सूची दी गई है:
गड़बड़ी | ब्यौरा |
---|---|
Invalid credentials | इसके कई मतलब हो सकते हैं. अगर आपको इस गड़बड़ी का सामना करना पड़ता है, तो
इसकी जाँच करें:
|
Not found | ज़्यादातर मामलों में, आपका एंडपॉइंट गलत है. देखें कि क्या सबमिट किया जा रहा है
GET अनुरोध किया हो और अनुरोध यूआरएल मान्य हो (यह
उस एपीआई सिंटैक्स में जोड़ा जा सकता है जिसे ऐक्सेस करने की कोशिश की जा रही है). |
Invalid string value | एंडपॉइंट के एक या उससे ज़्यादा हिस्सों में अमान्य सिंटैक्स है. उदाहरण के लिए, ऐसा भी हो सकता है कि आपने पाथ के किसी हिस्से की स्पेलिंग गलत तरीके से लिखी हो. देखें कि आपने सही तरीके से इस्तेमाल किया है या नहीं आपके पूरे पाथ में अंडरस्कोर, कैपिटल लेटर के इस्तेमाल, और शब्द इस्तेमाल किए जा सकते हैं. |
Unsupported output format | आम तौर पर, यह गड़बड़ी रिपोर्ट एपीआई का इस्तेमाल करते समय होती है. आपको ऐसा ज़रूर करना चाहिए
अपने GET के यूआरएल में "alt=csv" बताएं
अनुरोध. रिपोर्ट एपीआई, JSON के साथ काम नहीं करता है. |
AccessTokenRefreshError/Invalid grant | आपका ऐप्लिकेशन चलाते समय, यह गड़बड़ी इन वजहों से हो सकती है:
फ़ॉलो किया जा रहा है:
|
HotelAdsAPIConnection object has no attribute credentials | ऐप्लिकेशन चलाते समय, आपकी .JSON फ़ाइल का पाथ यह होता है
गलत. |
Invalid scope | ऐप्लिकेशन चलाते समय, आपके एपीआई का दायरा इनमें से कोई एक होना चाहिए:
|
Forbidden | आपने जिस खाता आईडी का इस्तेमाल किया है उसका इस्तेमाल करने की अनुमति आपके पास नहीं है ऐक्सेस करने के लिए. अगर आप उप-खाते के मालिक हैं, तो हो सकता है कि आप पैरंट या रूट खाता आईडी. |