पुष्टि करने की प्रोसेस के दौरान, Google OAuth से गड़बड़ी हो सकती है. इस प्रोसेस के दौरान होने वाली सबसे आम गड़बड़ियों को ठीक करने के लिए, इस गाइड का इस्तेमाल करें.
समस्या का हल
Google OAuth के बारे में ज़्यादा जानने के लिए, OAuth 2.0 का इस्तेमाल करके Google API को ऐक्सेस करना लेख पढ़ें.
रीफ़्रेश टोकन की समयसीमा बार-बार खत्म हो रही है
अगर क्लाइंट आईडी को मंज़ूरी नहीं मिली है, तो रीफ़्रेश टोकन सात दिनों के बाद काम करना बंद कर सकते हैं. यह एक वजह हो सकती है. टोकन की समयसीमा सात दिनों में खत्म होने का संबंध, कमर्शियल या सैंडबॉक्स की मंज़ूरी से नहीं है. टोकन की समयसीमा बढ़ाने के लिए, किसी सेवा या उपयोगकर्ता खाते को अपने OAuth 2.0 क्लाइंट आईडी की मंज़ूरी लेनी होगी और उसे प्रोडक्शन में डालना होगा. ज़्यादा जानकारी के लिए, रीफ़्रेश टोकन की समयसीमा खत्म होना लेख पढ़ें.
ऐक्सेस करने की मंज़ूरी नहीं मिली
अगर आपने Google Cloud में OAuth के लिए सहमति वाली स्क्रीन सेट अप की है और उपयोगकर्ता का टाइप बाहरी है, तो आपको "ऐक्सेस करने की मंज़ूरी नहीं मिली" गड़बड़ी दिखेगी. ऐसा तब होगा, जब आपने किसी ऐसे Google खाते को लिंक करने की कोशिश की हो जो आपके ऐप्लिकेशन के लिए टेस्ट उपयोगकर्ता के तौर पर शामिल नहीं है. पक्का करें कि आपने OAuth के लिए सहमति वाली स्क्रीन के टेस्ट उपयोगकर्ता सेक्शन में, Google खाता जोड़ा हो.
पार्टनर कनेक्शन मैनेजर (पीसीएम) में गड़बड़ी
पीसीएम को ऐक्सेस करते समय होने वाली किसी भी गड़बड़ी के बारे में मदद पाने के लिए, पार्टनर कनेक्शन मैनेजर (पीसीएम) में होने वाली गड़बड़ियों के बारे में जानकारी देखें.
Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है
एसडीएम एपीआई, प्रतिबंधित स्कोप का इस्तेमाल करता है. इसका मतलब है कि पुष्टि करने के दौरान, इस स्कोप का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन को "पुष्टि नहीं की गई" के तौर पर मार्क किया जाएगा. ऐसा तब तक होगा, जब तक OAuth API की पुष्टि की प्रोसेस पूरी नहीं हो जाती. निजी इस्तेमाल के लिए, OAuth API की पुष्टि की ज़रूरत नहीं होती. Device Access
पुष्टि करने की प्रोसेस के दौरान, आपको "Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है" स्क्रीन दिख सकती है. यह स्क्रीन तब दिखती है, जब Google Cloud में OAuth के लिए सहमति वाली स्क्रीन पर, sdm.service स्कोप कॉन्फ़िगर न किया गया हो. इस स्क्रीन को बायपास करने के लिए, बेहतर सेटिंग विकल्प पर क्लिक करें. इसके बाद, प्रोजेक्ट का नाम पर जाएं (सुरक्षित नहीं है) पर क्लिक करें.
ज़्यादा जानकारी के लिए, पुष्टि नहीं किए गए ऐप्लिकेशन स्क्रीन लेख पढ़ें.
अमान्य क्लाइंट
ऐक्सेस या रीफ़्रेश टोकन पाने की कोशिश करने पर, आपको "अमान्य क्लाइंट" गड़बड़ी दिखेगी. ऐसा तब होगा, जब आपने OAuth 2.0 क्लाइंट सीक्रेट गलत दिया हो. पक्का करें कि ऐक्सेस और रीफ़्रेश टोकन कॉल में इस्तेमाल की जा रही
client_secret वैल्यू, OAuth 2.0 क्लाइंट आईडी के लिए हो. यह वैल्यू, आपके
Google Cloud
Credentials
पेज पर देखी जा सकती है.
अनुरोध अमान्य है, ज़रूरी स्कोप मौजूद नहीं है
पीसीएम में अनुमतियां देने के बाद, आपको "अनुरोध अमान्य है" गड़बड़ी दिख सकती है. इसमें "ज़रूरी पैरामीटर मौजूद नहीं है: स्कोप" मैसेज दिखता है. पक्का करें कि पुष्टि करने के लिए किए जाने वाले कॉल में इस्तेमाल की जा रही
scope वैल्यू वही हो जो आपने OAuth 2.0 क्लाइंट के लिए सेट की है. यह वैल्यू, Google Cloud
Credentials
page पर देखी जा सकती है.
रीडायरेक्ट यूआरआई मेल नहीं खा रहा है
पुष्टि करने की प्रोसेस के दौरान, आपको "रीडायरेक्ट यूआरआई मेल नहीं खा रहा है" गड़बड़ी दिख सकती है. पक्का करें कि पुष्टि करने के लिए किए जाने वाले कॉल में इस्तेमाल की जा रही redirect_uri वैल्यू वही हो जो आपने OAuth 2.0 क्लाइंट के लिए सेट की है. यह वैल्यू, Google Cloud क्रेडेंशियल पेज पर देखी जा सकती है.
एक नज़र में जानकारी
इस रेफ़रंस का इस्तेमाल करके, किसी को अनुमति देने और उसके Google खाते को लिंक करने के लिए, चरणों को तुरंत लागू किया जा सकता है.user
इस रेफ़रंस का इस्तेमाल करने के लिए, कोड के सैंपल में मौजूद हर प्लेसहोल्डर वैरिएबल में, अपने इंटिग्रेशन के लिए सही वैल्यू डालें. इसके बाद, ज़रूरत के हिसाब से कॉपी और पेस्ट करें:
1 पीसीएम
अपने ऐप्लिकेशन में, user को पीसीएम के लिंक पर रीडायरेक्ट करें. इसके लिए, इन वैल्यू को बदलें:
- project-id को अपने Device Access Project आईडी से बदलें
- oauth2-client-id को अपने Google Cloud क्रेडेंशियल से मिले OAuth2 क्लाइंट आईडी से बदलें
- redirect-uri को, इस्तेमाल किए जा रहे OAuth2 क्लाइंट आईडी के लिए तय किए गए रीडायरेक्ट यूआरआई से बदलें
- scope को, उपलब्ध किसी एक स्कोप से बदलें
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=redirect-uri& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/scope
2 पुष्टि करने वाला कोड
चुने गए स्कोप के लिए, पीसीएम के ज़रिए अनुमतियां देने के बाद, user को आपके तय किए गए रीडायरेक्ट
यूआरआई पर रीडायरेक्ट किया जाना चाहिए. पुष्टि करने वाला कोड, यूआरएल में code पैरामीटर के तौर पर दिखता है,
यह इस फ़ॉर्मैट में होना चाहिए:
redirect-uri?code=authorization-code&scope=https://www.googleapis.com/auth/scope
3 ऐक्सेस टोकन
ऐक्सेस टोकन पाने के लिए, ऑथराइज़ेशन कोड का इस्तेमाल करें. इसका इस्तेमाल करके, उपयोगकर्ता की ओर से एसडीएम एपीआई को कॉल किया जा सकता है.
Google के OAuth एंडपॉइंट पर POST कॉल करें. इसके लिए, इन वैल्यू को बदलें:
- oauth2-client-id और oauth2-client-secret को, अपने Google Cloud क्रेडेंशियल से मिले OAuth2 क्लाइंट आईडी और क्लाइंट सीक्रेट से बदलें
- authorization-code को, पिछले चरण में मिले कोड से बदलें
- redirect-uri को, इस्तेमाल किए जा रहे OAuth2 क्लाइंट आईडी के लिए तय किए गए रीडायरेक्ट यूआरआई से बदलें
Google OAuth, दो टोकन दिखाता है: ऐक्सेस टोकन और अ रीफ़्रेश टोकन.
अनुरोध
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=redirect-uri' जवाब
{
"access_token": "access-token",
"expires_in": 3599,
"refresh_token": "refresh-token",
"scope": "https://www.googleapis.com/auth/scope",
"token_type": "Bearer"
}4 एपीआई कॉल
पुष्टि करने की प्रोसेस तब तक पूरी नहीं होती, जब तक के userऐक्सेस टोकन से एपीआई कॉल न किया जाए. इस शुरुआती कॉल से, पुष्टि करने की प्रोसेस पूरी हो जाती है और इवेंट चालू हो जाते हैं.
पुष्टि करने की प्रोसेस पूरी करने के लिए, तय किए गए स्कोप के लिए सूची में शामिल किसी एक एपीआई कॉल का इस्तेमाल करना होगा.
sdm.service
डिवाइस
ज़्यादा जानकारी के लिए,
devices.list
एपीआई रेफ़रंस देखें.
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'5 रीफ़्रेश टोकन
एसडीएम एपीआई के लिए ऐक्सेस टोकन, सिर्फ़ एक घंटे के लिए
मान्य होते हैं. इसकी जानकारी, Google OAuth से मिले expires_in पैरामीटर में दी गई है. अगर आपके ऐक्सेस टोकन की समयसीमा खत्म हो जाती है, तो नया टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करें.
Google के OAuth एंडपॉइंट पर POST कॉल करें. इसके लिए, इन वैल्यू को बदलें:
- oauth2-client-id और oauth2-client-secret को, अपने Google Cloud क्रेडेंशियल से मिले OAuth2 क्लाइंट आईडी और क्लाइंट सीक्रेट से बदलें
- refresh-token को, ऐक्सेस टोकन हासिल करते समय मिले कोड से बदलें.
Google OAuth, नया ऐक्सेस टोकन दिखाता है.
अनुरोध
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token' जवाब
{
"access_token": "new-access-token",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/scope",
"token_type": "Bearer"
}