खाता जोड़ना सीधे आपके मोबाइल ऐप्लिकेशन में पूरा किया जा सकता है. इससे आपके उपयोगकर्ता अपने Google खाते से आपकी सेवा का खाता जोड़ सकते हैं. जोड़ा गया लिंक, Google को उस डेटा का ऐक्सेस देता है जिसे उपयोगकर्ता शेयर करने की सहमति देता है.
उपयोगकर्ताओं को मिलने वाले फ़ायदों में ये शामिल हैं:
- उपयोगकर्ता आपके ऐप्लिकेशन में खाता जोड़ने की प्रोसेस शुरू कर सकते हैं और उसे पूरा कर सकते हैं. इस तरह के माहौल के बारे में वे पहले से जानते हैं.
- उपयोगकर्ताओं को लॉगिन क्रेडेंशियल की ज़रूरत नहीं है, क्योंकि वे डिवाइस और आपके मोबाइल ऐप्लिकेशन में पहले ही पुष्टि कर चुके हैं.
डेवलपर के लिए ये फ़ायदे हैं:
- अपने मोबाइल ऐप्लिकेशन में खाता लिंक करने की सुविधा का प्रचार और शुरुआत करना , जिससे जुड़ाव और खातों की संख्या बढ़ गई है.
- कन्वर्ज़न मानक में बढ़ोतरी, क्योंकि उपयोगकर्ता स्टैंडर्ड वेब पर आधारित OAuth फ़्लो के मुकाबले कम चरणों में, लिंक करने की प्रोसेस पूरी कर सकते हैं.
- आपके प्लैटफ़ॉर्म (Android) से लिंक लागू करने के लिए कम इंजीनियरिंग कोशिश करनी होगी, क्योंकि यह फ़्लो आपके मौजूदा OAuth2.0 कोड लागू करने के तरीके का फ़ायदा उठाता है. यह मानते हुए कि आपने पहले ही इसे लागू कर लिया है.
- ड्रॉप-ऑफ़ दरें कम की गई है, क्योंकि उपयोगकर्ताओं को अपने लॉगिन क्रेडेंशियल दोबारा डालने की ज़रूरत नहीं है और वे कम चरणों में यह प्रक्रिया पूरी कर सकते हैं. ड्रॉप-ऑफ़ दरें, फ़्लो में 80% तक भी हो सकती हैं, जहां उपयोगकर्ताओं को अपने 'साइन इन' क्रेडेंशियल डालने या दर्ज करने की ज़रूरत होती है.
यह कैसे काम करता है
अपने प्लैटफ़ॉर्म से लिंक करने की प्रोसेस, इन चरणों में पूरी की जाती है:
- उपयोगकर्ता आपके मोबाइल ऐप्लिकेशन पर, लिंक करने वाले ट्रिगर पर क्लिक करेगा या उसे टॉगल करेगा.
- उपयोगकर्ता, लिंक करने के लिए Google खाता चुनता है.
- उपयोगकर्ता, डिवाइस पर मौजूद किसी Google खाते को लिंक करने के लिए चुनता है या नए खाते से साइन इन करता है
- उपयोगकर्ता को Google की होस्ट की गई सहमति स्क्रीन दिखाई जाती है. इसके बाद, उसे आगे बढ़ने के लिए सहमति देनी होती है या लिंक करने की प्रोसेस को रोकने के लिए रद्द करना होता है.
- उपयोगकर्ता को आपकी सहमति वाली स्क्रीन दिखाई जाती है. उसे आगे बढ़ने के लिए सहमति देनी होगी या लिंक करने की प्रोसेस को रोकने के लिए रद्द करना होगा.
- आपकी सेवा पर मौजूद उपयोगकर्ता के खाते और उसके Google खाते के बीच लिंक बन जाता है.
पहली इमेज. प्लैटफ़ॉर्म फ़्लो से लिंक करना
ज़रूरी शर्तें
अपने प्लैटफ़ॉर्म पर Link को लागू करने के लिए, आपको ये काम करने होंगे:
- कोई Android ऐप्लिकेशन.
- आपके पास एक ऐसा OAuth 2.0 सर्वर होना चाहिए जो OAuth 2.0 के ऑथराइज़ेशन कोड फ़्लो के साथ काम करता हो. साथ ही, आपको उसे मैनेज और उसका रखरखाव करना होगा.
सेटअप
यहां दिया गया तरीका अपनाने से पहले, आपको खाते को लिंक करने की रजिस्ट्रेशन प्रोसेस पूरी करनी होगी.
अपना डेवलपमेंट एनवायरमेंट सेट अप करना
अपने डेवलपमेंट होस्ट पर Google Play services का नया वर्शन पाने के लिए:
- Android SDK Manager खोलें.
एसडीके टूल में जाकर, Google Play services ढूंढें.
अगर इन पैकेज का स्टेटस 'इंस्टॉल नहीं किया गया' है, तो दोनों को चुनें और Install Packages पर क्लिक करें.
अपना ऐप्लिकेशन कॉन्फ़िगर करना
प्रोजेक्ट-लेवल की
build.gradleफ़ाइल में,buildscriptऔरallprojects, दोनों सेक्शन में Google की Maven रिपॉज़िटरी को शामिल करें.buildscript { repositories { google() } } allprojects { repositories { google() } }अपने मॉड्यूल की ऐप्लिकेशन-लेवल की gradle फ़ाइल में, “Google से लिंक करें” एपीआई के लिए डिपेंडेंसी जोड़ें. आम तौर पर, यह फ़ाइल
app/build.gradleहोती है:dependencies { implementation 'com.google.android.gms:play-services-auth:22.0.0' }
अपने प्लैटफ़ॉर्म से लिंक करने की सुविधा जोड़ना
आपके प्लैटफ़ॉर्म के फ़्लो से लिंक करने पर, Google को आपकी सेवा से ऐक्सेस टोकन मिलेगा. Google इस टोकन को सेव कर लेगा. उपयोगकर्ता के लिए टोकन वापस करने से पहले, सहमति लेना ज़रूरी है.
उपयोगकर्ता से सहमति लेने और Google Play services SDK टूल के ज़रिए ऑथराइज़ेशन कोड टोकन पाने के लिए, यह तरीका अपनाएं.
एक PendingIntent बनाएं, जो आपकी सहमति ऐक्टिविटी को लॉन्च कर सके. सहमति को Play सेवाएं API लॉन्च करता है. एपीआई को कॉल करने पर, आपको
PendingIntentदेना होगा. इसे साफ़ शब्दों मेंconsentPendingIntentकहा जाएगाKotlin
// Build a PendingIntent that can launch the consent activity val consentPendingIntent = buildConsentPendingIntent()Java
// Build a PendingIntent that can launch your consent activity PendingIntent consentPendingIntent = buildConsentPendingIntent();सहमति के इंटेंट को मैनेज करने के लिए, उससे जुड़ी गतिविधि बनाएं
Kotlin
class ConsentActivity : AppCompatActivity private fun onConsentAccepted() { // Obtain a token (for simplicity, we’ll ignore the async nature // of the following call) val token = getToken() val intent = Intent() .putExtra(SaveAccountLinkingTokenRequest.EXTRA_TOKEN, token) setResult(Activity.RESULT_OK, intent) finish() } private fun onConsentRejectedOrCanceled() { setResult(Activity.RESULT_CANCELED) finish() }Java
public class ConsentActivity extends AppCompatActivity { ... private void onConsentAccepted() { // Obtain a token (for simplicity, we’ll ignore the async nature of // the following call String token = getToken(); Intent intent = new Intent(); intent.putExtra(SaveAccountLinkingTokenRequest.EXTRA_TOKEN, token); setResult(Activity.RESULT_OK, intent); finish(); } private void onConsentRejectedOrCanceled() { setResult(Activity.RESULT_CANCELED, null); finish(); } }हमारा मानना है कि अगर उपयोगकर्ता आपकी सहमति को स्वीकार या अस्वीकार/रद्द करता है, तो
onConsentAccpeted()औरonConsentRejectedOrCanceled()तरीके इस्तेमाल किए जाते हैं.टोकन सेव करने के लिए अनुरोध बनाएं. साथ ही, अन्य कॉन्फ़िगरेशन पैरामीटर के साथ, पहले चरण में बनाया गया
PendingIntentपास करें.Kotlin
// Create an ActivityResultLauncher which registers a callback for the // Activity result contract val activityResultLauncher = registerForActivityResult( ActivityResultContracts.StartIntentSenderForResult()) { result -> if (result.resultCode == RESULT_OK) { // Successfully finished the flow and saved the token } else { // Flow failed, for example the user may have canceled the flow } } // Build token save request val request = SaveAccountLinkingTokenRequest.builder() .setTokenType(SaveAccountLinkingTokenRequest.TOKEN_TYPE_AUTH_CODE) .setConsentPendingIntent(consentPendingIntent) .setServiceId("service-id-of-and-defined-by-developer") //Set the scopes that the token is valid for on your platform .setScopes(scopes) .build() // Launch consent activity and retrieve token Identity.getCredentialSavingClient(this) .saveAccountLinkingToken(request) .addOnSuccessListener( saveAccountLinkingTokenResult -> { if (saveAccountLinkingTokenResult.hasResolution()) { val pendingIntent = saveAccountLinkingTokenResult .getPendingIntent() val intentSenderRequest = IntentSenderRequest .Builder(pendingIntent).build() activityResultLauncher.launch(intentSenderRequest) } else { // This should not happen, let’s log this Log.e(TAG, "Failed to save token"); } }) .addOnFailureListener(e -> Log.e(TAG, “Failed to save token”, e))Java
// Create an ActivityResultLauncher which registers a callback for the // Activity result contract ActivityResultLauncher<IntentSenderRequest> activityResultLauncher = registerForActivityResult(new ActivityResultContracts .StartIntentSenderForResult(), result -> { if (result.getResultCode() == RESULT_OK) { // Successfully finished the flow and saved the token } else { // Flow failed, for example the user may have canceled the flow } }); // Build token save request SaveAccountLinkingTokenRequest request = SaveAccountLinkingTokenRequest.builder() .setTokenType( SaveAccountLinkingTokenRequest.TOKEN_TYPE_AUTH_CODE) .setConsentPendingIntent(consentPendingIntent) .setServiceId("service-id-of-and-defined-by-developer") //Set the scopes that the token is valid for on your platform .setScopes(scopes) .build(); // Launch consent activity and retrieve token Identity.getCredentialSavingClient(this) .saveAccountLinkingToken(request) .addOnSuccessListener( saveAccountLinkingTokenResult -> { if (saveAccountLinkingTokenResult.hasResolution()) { // Launch the resolution intent PendingIntent pendingIntent = saveAccountLinkingTokenResult.getPendingIntent(); IntentSenderRequest intentSenderRequest = new IntentSenderRequest.Builder(pendingIntent).build(); activityResultLauncher.launch(intentSenderRequest); } else { // This should not happen, let’s log this Log.e(TAG, "Failed to save token"); } }) .addOnFailureListener(e -> Log.e(TAG, "Failed to save token", e)); ```
ऊपर दिया गया तरीका अपनाने पर, उपयोगकर्ता से सहमति मांगी जाती है. इसके बाद, Google को एक ऑथराइज़ेशन कोड मिलता है.
सबसे सही तरीके
आपके ऐप्लिकेशन को बटन, टॉगल या मिलते-जुलते विज़ुअल एलिमेंट की मदद से, उपयोगकर्ता को लिंक की स्थिति के बारे में बताना चाहिए.
पहली इमेज. लिंक करने की स्थिति की सैंपल इमेज
लिंक हो जाने के बाद, आपको उपयोगकर्ता को इसकी सूचना देनी चाहिए. उदाहरण के लिए, टोस्ट मैसेज दिखाएं, टॉगल की स्थिति में बदलाव ट्रिगर करें या उपयोगकर्ता को लिंक होने की सूचना देने वाले किसी अलग पेज पर रीडायरेक्ट करें.
आपको ऐप्लिकेशन इस्तेमाल करने वाले लोगों को खाते लिंक करने के लिए प्रॉम्प्ट करना चाहिए. ऐसा तब करना चाहिए, जब आपको लगे कि खाते लिंक करने से उन्हें फ़ायदा होगा.
खाता लिंक करने के बाद, उपयोगकर्ताओं को यह उदाहरण दें कि लिंक किए गए खाते का इस्तेमाल कैसे किया जा सकता है. जैसे, अगर आपने संगीत स्ट्रीमिंग सेवा को लिंक किया है, तो Google Assistant से संगीत चलाने के लिए कहें.
उपयोगकर्ताओं को अपने लिंक किए गए खातों को मैनेज करने की सुविधा दें. इसमें खातों को अलग करने का विकल्प भी शामिल है. उन्हें Google खाते से लिंक किए गए खातों को मैनेज करने वाले पेज पर जाने के लिए कहें. इसके लिए, उन्हें https://myaccount.google.com/accountlinking पर जाना होगा.