OAuth 2.0 लागू करने के बाद, आपके पास OAuth पर आधारित App Flip को कॉन्फ़िगर करने का विकल्प होता है. इससे आपके iOS उपयोगकर्ताओं को, पुष्टि करने वाले आपके सिस्टम में मौजूद अपने खातों को Google खातों से तेज़ी से लिंक करने की सुविधा मिलती है. यहां दिए गए सेक्शन में, iOS पर Cloud-to-cloud इंटिग्रेशन के लिए, App Flip को डिज़ाइन और लागू करने का तरीका बताया गया है.
डिज़ाइन से जुड़े दिशा-निर्देश
इस सेक्शन में, ऐप्लिकेशन फ़्लिप के लिए खाता लिंक करने की सहमति वाली स्क्रीन के डिज़ाइन से जुड़ी ज़रूरी शर्तों और सुझावों के बारे में बताया गया है. Google से आपके ऐप्लिकेशन को कॉल करने के बाद, आपका ऐप्लिकेशन उपयोगकर्ता को सहमति वाली स्क्रीन दिखाता है.
ज़रूरी शर्तें
- आपके पास Google के लिए अनुमति देने वाला स्टेटमेंट होना चाहिए. जैसे, "खाता लिंक होने के बाद, Google के पास आपके डिवाइसों को कंट्रोल करने की अनुमति होगी."
- आपको यह बताना होगा कि उपयोगकर्ता का खाता Google से लिंक किया जा रहा है, न कि Google के किसी खास प्रॉडक्ट, जैसे कि Google Home या Google Assistant से.
- आपको सहमति लेने के लिए दिखाई जाने वाली स्क्रीन पर, कॉल-टू-ऐक्शन साफ़ तौर पर बताना होगा. साथ ही, खातों को लिंक करने के लिए "सहमति दें और लिंक करें" शब्दों का इस्तेमाल करना होगा. ऐसा इसलिए है, क्योंकि उपयोगकर्ताओं को यह पता होना चाहिए कि खाते लिंक करने के लिए, उन्हें Google के साथ कौन-कौनसा डेटा शेयर करना होगा.
- अगर उपयोगकर्ता खाते लिंक नहीं करना चाहते हैं, तो आपको उन्हें वापस जाने, अस्वीकार करने या रद्द करने का विकल्प देना होगा. रद्द करने की कार्रवाई के लिए, "रद्द करें" शब्द का इस्तेमाल करें.
- आपको यह वर्कफ़्लो लागू करना होगा: "सहमत हों और लिंक करें" पर क्लिक करने के बाद, आपको यह दिखाना होगा कि लिंक करने की प्रोसेस पूरी हो गई है. साथ ही, उपयोगकर्ता को Google Home ऐप्लिकेशन पर अपने-आप रीडायरेक्ट करना होगा. अब उपयोगकर्ता को Google Home ऐप्लिकेशन पर, आपकी कार्रवाई से लिंक किया गया डिवाइस दिखना चाहिए. "रद्द करें" पर क्लिक करने के बाद, उपयोगकर्ता को वापस Google Home ऐप्लिकेशन पर रीडायरेक्ट करें.
सुझाव
हमारा सुझाव है कि आप ये काम करें:
Google की निजता नीति दिखाओ. सहमति लेने के लिए दिखने वाली स्क्रीन पर, Google की निजता नीति का लिंक शामिल करें.
शेयर किया जाने वाला डेटा. उपयोगकर्ता को साफ़ तौर पर और कम शब्दों में बताएं कि Google को उसका कौनसा डेटा चाहिए और क्यों.
अनलिंक करने की सुविधा. उपयोगकर्ताओं को खाता अनलिंक करने का तरीका उपलब्ध कराएं. जैसे, आपके प्लैटफ़ॉर्म पर मौजूद खाते की सेटिंग का यूआरएल. इसके अलावा, Google खाते का लिंक शामिल किया जा सकता है. इससे उपयोगकर्ता, लिंक किए गए खाते को मैनेज कर सकते हैं.
उपयोगकर्ता खाते को बदलने की सुविधा. उपयोगकर्ताओं को उनके खाते स्विच करने का तरीका सुझाएं. यह खास तौर पर तब फ़ायदेमंद होता है, जब उपयोगकर्ताओं के पास एक से ज़्यादा खाते हों.
- अगर किसी उपयोगकर्ता को खाता बदलने के लिए, सहमति वाली स्क्रीन बंद करनी पड़ती है, तो Google को ऐसी गड़बड़ी की जानकारी भेजें जिसे ठीक किया जा सकता हो. इससे उपयोगकर्ता, OAuth लिंकिंग और इंप्लिसिट फ़्लो का इस्तेमाल करके, अपने पसंदीदा खाते में साइन इन कर पाएगा.
अपना लोगो शामिल करें. सहमति वाली स्क्रीन पर, अपनी कंपनी का लोगो दिखाएं. लोगो को सही जगह पर रखने के लिए, स्टाइल से जुड़े दिशा-निर्देशों का इस्तेमाल करें. अगर आपको Google का लोगो भी दिखाना है, तो लोगो और ट्रेडमार्क देखें.
OAuth पर आधारित App Flip के लिए सेट अप करना
यहां दिए गए सेक्शन में, OAuth पर आधारित ऐप्लिकेशन फ़्लिप की ज़रूरी शर्तों के बारे में बताया गया है. साथ ही, Google Home Developer Console में ऐप्लिकेशन फ़्लिप प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है.
क्लाउड-टू-क्लाउड इंटिग्रेशन बनाना और OAuth 2.0 सर्वर सेट अप करना
App Flip को कॉन्फ़िगर करने से पहले, आपको ये काम करने होंगे:
- OAuth 2.0 सर्वर सेट अप करना. OAuth सर्वर को सेट अप करने के बारे में ज़्यादा जानने के लिए, OAuth 2.0 सर्वर को लागू करना लेख पढ़ें.
- क्लाउड-टू-क्लाउड इंटिग्रेशन बनाएं. इंटिग्रेशन बनाने के लिए, क्लाउड-टू-क्लाउड इंटिग्रेशन बनाना में दिए गए निर्देशों का पालन करें.
Developer Console में ऐप्लिकेशन फ़्लिप को कॉन्फ़िगर करना
यहां दिए गए सेक्शन में, Developer Console में ऐप्लिकेशन फ़्लिप को कॉन्फ़िगर करने का तरीका बताया गया है.
- OAuth क्लाइंट की जानकारी में जाकर, सभी फ़ील्ड भरें. (अगर App Flip काम नहीं करता है, तो सामान्य OAuth का इस्तेमाल दूसरे विकल्प के तौर पर किया जाता है.)
- खाता लिंक करने के लिए अपने ऐप्लिकेशन का इस्तेमाल करें(ज़रूरी नहीं) में जाकर, iOS के लिए चालू करें को चुनें.
- यूनिवर्सल लिंक फ़ील्ड भरें. यूनिवर्सल लिंक के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन और वेबसाइटों को अपने कॉन्टेंट से लिंक करने की अनुमति देना लेख पढ़ें.
- अगर आपको अपने क्लाइंट को कॉन्फ़िगर करना है, तो स्कोप जोड़ें. इसके बाद, अपने क्लाइंट को कॉन्फ़िगर करें (ज़रूरी नहीं) में जाकर, स्कोप जोड़ें पर क्लिक करें.
- सेव करें पर क्लिक करें.
अब अपने iOS ऐप्लिकेशन में App Flip को लागू करने के लिए, अगले सेक्शन पर जाएं.
अपने नेटिव ऐप्लिकेशन में App Flip को लागू करना
App Flip को लागू करने के लिए, आपको अपने ऐप्लिकेशन में उपयोगकर्ता के अनुमति कोड में बदलाव करना होगा, ताकि Google से डीप लिंक स्वीकार किया जा सके.
OAuth पर आधारित ऐप्लिकेशन फ़्लिप लिंकिंग (ऐप्लिकेशन फ़्लिप) की सुविधा, Google ऐप्लिकेशन से आपके iOS ऐप्लिकेशन को खोलती है. इससे Google ऐप्लिकेशन के उपयोगकर्ता को अपना खाता आसानी से लिंक करने में मदद मिलती है. इस सुविधा को लागू करने के लिए, आपको अपने iOS ऐप्लिकेशन के कोड में कुछ बदलाव करने होंगे.
इस दस्तावेज़ में, ऐप्लिकेशन फ़्लिप की सुविधा के साथ काम करने के लिए, iOS ऐप्लिकेशन में बदलाव करने का तरीका बताया गया है.
सैंपल आज़माएं
ऐप्लिकेशन फ़्लिप सैंपल के तौर पर मिला ऐप्लिकेशन, iOS पर खाते को लिंक करने की सुविधा को इंटिग्रेट करने का तरीका दिखाता है. यह सुविधा, ऐप्लिकेशन फ़्लिप के साथ काम करती है. इस ऐप्लिकेशन का इस्तेमाल करके, यह पुष्टि की जा सकती है कि Google के मोबाइल ऐप्लिकेशन से आने वाले ऐप्लिकेशन फ़्लिप के यूनिवर्सल लिंक का जवाब कैसे दिया जाए.
सैंपल के तौर पर मिला ऐप्लिकेशन, iOS के लिए App Flip Test Tool के साथ इंटिग्रेट करने के लिए पहले से कॉन्फ़िगर किया गया है. Google के साथ खाता लिंक करने की सुविधा को कॉन्फ़िगर करने से पहले, ऐप्लिकेशन फ़्लिप के साथ अपने iOS ऐप्लिकेशन के इंटिग्रेशन की पुष्टि करने के लिए, इसका इस्तेमाल किया जा सकता है. यह ऐप्लिकेशन, उस यूनिवर्सल लिंक को सिम्युलेट करता है जो ऐप्लिकेशन फ़्लिप की सुविधा चालू होने पर, Google के मोबाइल ऐप्लिकेशन से ट्रिगर होता है.
यह कैसे काम करता है
ऐप्लिकेशन फ़्लिप होने पर, Google ऐप्लिकेशन और आपका ऐप्लिकेशन ये चरण अपनाते हैं:
Google ऐप्लिकेशन, आपके ऐप्लिकेशन के यूनिवर्सल लिंक को खोलने की कोशिश करता है. अगर आपका ऐप्लिकेशन उपयोगकर्ता के डिवाइस पर इंस्टॉल है और यूनिवर्सल लिंक से जुड़ा है, तो यह आपके ऐप्लिकेशन को खोल सकता है. ज़्यादा जानकारी के लिए, यूनिवर्सल लिंक इस्तेमाल करने की सुविधा लेख पढ़ें.
आपका ऐप्लिकेशन यह जांच करता है कि इनकमिंग यूआरएल में एन्कोड किए गए
client_idऔरredirect_uriपैरामीटर, Google के यूनिवर्सल लिंक से मैच करते हैं या नहीं.आपका ऐप्लिकेशन, आपके OAuth2 सर्वर से ऑथराइज़ेशन कोड का अनुरोध करता है. इस फ़्लो के आखिर में, आपका ऐप्लिकेशन Google ऐप्लिकेशन को अनुमति देने वाला कोड या गड़बड़ी का मैसेज दिखाता है. इसके लिए, यह Google के यूनिवर्सल लिंक को खोलता है. इसमें अनुमति देने वाले कोड या गड़बड़ी के लिए, पैरामीटर जोड़े जाते हैं.
Google ऐप्लिकेशन, आने वाले Google यूनिवर्सल लिंक को मैनेज करता है और बाकी की प्रोसेस जारी रखता है. अगर ऑथराइज़ेशन कोड दिया जाता है, तो लिंक करने की प्रोसेस तुरंत पूरी हो जाती है. टोकन का एक्सचेंज, सर्वर-टू-सर्वर होता है. ठीक उसी तरह जैसे ब्राउज़र पर आधारित OAuth लिंकिंग फ़्लो में होता है. अगर गड़बड़ी का कोई कोड दिखता है, तो लिंक करने की प्रोसेस अन्य विकल्पों के साथ जारी रहती है.
ऐप्लिकेशन फ़्लिप की सुविधा के साथ काम करने के लिए, अपने iOS ऐप्लिकेशन में बदलाव करना
ऐप्लिकेशन फ़्लिप की सुविधा का इस्तेमाल करने के लिए, अपने iOS ऐप्लिकेशन के कोड में ये बदलाव करें:
- अपने ऐप्लिकेशन डेलिगेट में
NSUserActivityTypeBrowsingWebको मैनेज करें. - यूआरएल से
redirect_uriऔरstateपैरामीटर कैप्चर करें, ताकि बाद में उनका इस्तेमाल किया जा सके. - देखें कि
redirect_uriइस फ़ॉर्मैट से मेल खाता है या नहीं:https://oauth-redirect.googleusercontent.com/a/GOOGLE_APP_BUNDLE_ID https://oauth-redirect-sandbox.googleusercontent.com/a/GOOGLE_APP_BUNDLE_ID
पुष्टि करें कि क्लाइंट आईडी, अनुमानित वैल्यू से मेल खाता हो. इस कोड सैंपल का इस्तेमाल करें:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let incomingURL = userActivity.webpageURL, let components = URLComponents(url: incomingURL, resolvingAgainstBaseURL: false), let params = components.queryItems else { return false } if let clientId = params.filter({$0.name == "client_id"}).first?.value, let state = params.filter({$0.name == "state"}).first?.value, let redirectUri = params.filter({$0.name == "redirect_uri"}).first?.value { // Save the redirect_uri and state for later... // Verify the client id return (clientId == GOOGLE_CLIENT_ID) } else { // Missing required parameters return false } }अनुमति मिलने के बाद, अनुमति कोड के साथ रीडायरेक्ट यूआरआई को कॉल करें. यहां दिए गए कोड सैंपल का इस्तेमाल करें:
func returnAuthCode(code: String, state: String, redirectUri: String) { var redirectURL = URL(string: redirectUri) var components = URLComponents(url: redirectURL, resolvingAgainstBaseURL: false) // Return the authorization code and original state let paramAuthCode = URLQueryItem(name: "code", value: code) let paramState = URLQueryItem(name: "state", value: state) components?.queryItems = [paramAuthCode, paramState] if let resultURL = components?.url { UIApplication.shared.open( resultURL, options: [UIApplicationOpenURLOptionUniversalLinksOnly : true], completionHandler: nil) } }अगर कोई गड़बड़ी हुई है, तो रीडायरेक्ट यूआरआई में गड़बड़ी का नतीजा अटैच करें. यहां दिए गए कोड सैंपल का इस्तेमाल करें:
func returnError(redirectUri: String) { var redirectURL = URL(string: redirectUri) var components = URLComponents(url: redirectURL, resolvingAgainstBaseURL: false) // Return the authorization code and original state let paramError = URLQueryItem(name: "error", value: "invalid_request") let paramDescription = URLQueryItem(name: "error_description", value: "Invalid Request") components?.queryItems = [paramError, paramDescription] if let resultURL = components?.url { UIApplication.shared.open( resultURL, options: [UIApplicationOpenURLOptionUniversalLinksOnly : true], completionHandler: nil) } }
आपके ऐप्लिकेशन के यूनिवर्सल लिंक के लिए क्वेरी पैरामीटर
जब Google ऐप्लिकेशन आपके ऐप्लिकेशन का यूनिवर्सल लिंक खोलता है, तो उसमें ये क्वेरी पैरामीटर शामिल होते हैं:
client_id(String): आपके ऐप्लिकेशन में रजिस्टर किया गया Googleclient_id.scope(List of String): स्पेस से अलग किए गए स्कोप की सूची का अनुरोध किया गया.state(String): Google इस नॉन्स का इस्तेमाल करके यह पुष्टि करता है कि अनुमति का नतीजा, Google के आउटगोइंग अनुरोध के जवाब में है.redirect_uri(String): Google का यूनिवर्सल लिंक. Google ऐप्लिकेशन खोलने और नतीजे पास करने के लिए, "फ़्लिप" यूआरआई.
Google के यूनिवर्सल लिंक के लिए क्वेरी पैरामीटर
अनुमति मिलने पर इस्तेमाल किए जाने वाले पैरामीटर:
code(String): ऑथराइज़ेशन कोड की वैल्यू, अगर उपलब्ध हो.state(String): यूनिवर्सल लिंक से मिली सटीक वैल्यू.
अनुमति न मिलने पर इस्तेमाल किए जाने वाले पैरामीटर:
error(String), जिसमें ये वैल्यू शामिल हैं:cancelled: ऐसी गड़बड़ी जिसे ठीक किया जा सकता है. Google ऐप्लिकेशन, ऑथराइज़ेशन यूआरएल का इस्तेमाल करके खाते को लिंक करने की कोशिश करेगा. इसके कुछ उदाहरण हैं: उपयोगकर्ता का साइन इन न कर पाना, डिवाइस का ऑफ़लाइन होना या कनेक्शन का टाइम आउट होना.unrecoverable: वह गड़बड़ी जिसकी वजह से डेटा वापस नहीं पाया जा सकता. उदाहरण के लिए, उपयोगकर्ता किसी ऐसे खाते को लिंक करने की कोशिश करता है जो बंद है.ऐसे में, Google ऐप्लिकेशन खाता लिंक करने की प्रोसेस को रद्द कर देगा.invalid_request: अनुरोध के पैरामीटर अमान्य हैं या मौजूद नहीं हैं. यह एक ऐसी गड़बड़ी है जिसे ठीक किया जा सकता है. Google ऐप्लिकेशन, अनुमति देने वाले यूआरएल का इस्तेमाल करके खाते को लिंक करने की कोशिश करेगा.access_denied: उपयोगकर्ता, सहमति के अनुरोध को अस्वीकार करता है. यह गड़बड़ी ठीक नहीं की जा सकती. इसलिए, Google ऐप्लिकेशन खाते को लिंक करने की प्रोसेस को रोक देता है.
error_description(String, ज़रूरी नहीं): गड़बड़ी का ऐसा मैसेज जिसे उपयोगकर्ता आसानी से समझ सके.
सभी तरह की गड़बड़ियों के लिए, आपको रिस्पॉन्स डेटा को तय किए गए REDIRECT_URI पर भेजना होगा, ताकि सही फ़ॉलबैक ट्रिगर हो सके.
ऐप्लिकेशन फ़्लिप की सुविधा का इस्तेमाल करने के लिए, अपने ऑथराइज़ेशन एंडपॉइंट में बदलाव करना
Google के ऐप्लिकेशन फ़्लिप रीडायरेक्ट यूआरएल का इस्तेमाल करके, अनुरोध स्वीकार करने के लिए अपने प्लैटफ़ॉर्म को कॉन्फ़िगर करें:
- Google Home ऐप्लिकेशन
https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast.dev https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast.enterprise https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast.dev https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast.enterprise https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast
- Google Assistant ऐप्लिकेशन
https://oauth-redirect.googleusercontent.com/a/com.google.OPA.dev https://oauth-redirect.googleusercontent.com/a/com.google.OPA.enterprise https://oauth-redirect.googleusercontent.com/a/com.google.OPA https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA.dev https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA.enterprise https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA
Google Home app (GHA) के लिए, स्मार्ट होम खाते को लिंक करने की प्रोसेस में com.google.Chromecast रीडायरेक्ट यूआरएल का इस्तेमाल किया जाता है. पक्का करें कि आपका ऑथराइज़ेशन सर्वर इन रीडायरेक्ट यूआरएल को अनुमति देता हो.
अनुरोध मिलने पर, पक्का करें कि client_id और redirect_uri पैरामीटर से तय किए गए यूआरएल की वैल्यू, अनुमानित वैल्यू से मेल खाती हों. अगर क्लाइंट की पुष्टि नहीं हो पाती है, तो redirect_uri को गड़बड़ी invalid_request दिखाएं.
अपने डिवाइस पर App Flip को आज़माना
अब आपने क्लाउड-टू-क्लाउड इंटिग्रेशन बना लिया है और कंसोल और अपने ऐप्लिकेशन में ऐप्लिकेशन फ़्लिप को कॉन्फ़िगर कर लिया है. इसके बाद, अपने मोबाइल डिवाइस पर ऐप्लिकेशन फ़्लिप की जांच की जा सकती है. ऐप्लिकेशन फ़्लिप की सुविधा को टेस्ट करने के लिए, Google Home ऐप्लिकेशन का इस्तेमाल किया जा सकता है.
Google Home ऐप्लिकेशन से App Flip को टेस्ट करने के लिए, यह तरीका अपनाएं:
- Developer Console पर जाएं और अपना प्रोजेक्ट चुनें.
- क्लाउड-टू-क्लाउड > टेस्ट पर जाएं.
- Home ऐप्लिकेशन से खाता लिंक करने की प्रोसेस को ट्रिगर करना:
- Google Home app (GHA) खोलें.
- + बटन पर क्लिक करें.
- डिवाइस सेट अप करें पर क्लिक करें.
- क्या पहले से कुछ सेट अप किया हुआ है? पर क्लिक करें
- सेवा देने वाली कंपनियों की सूची में से, क्लाउड-टू-क्लाउड इंटिग्रेशन चुनें. सूची में इसके नाम के आगे “[test]” लिखा होगा. सूची से [test] इंटिग्रेशन चुनने पर, आपका ऐप्लिकेशन खुल जाना चाहिए.
- पुष्टि करें कि आपका ऐप्लिकेशन लॉन्च हो गया है. इसके बाद, अनुमति देने के फ़्लो की जांच शुरू करें.