खाता जोड़ना सीधे आपके मोबाइल ऐप्लिकेशन में पूरा किया जा सकता है. इससे आपके उपयोगकर्ता अपने Google खाते से आपकी सेवा का खाता जोड़ सकते हैं. जोड़ा गया लिंक, Google को उस डेटा का ऐक्सेस देता है जिसे उपयोगकर्ता शेयर करने की सहमति देता है.
इस तरीके से, Assistant से बातचीत करने के बजाय आपके ऐप्लिकेशन के जाने-पहचाने कॉन्टेक्स्ट में, उपयोगकर्ताओं को जोड़कर खाता जोड़ने की परफ़ॉर्मेंस को बेहतर बनाया जाता है. इसे उपयोगकर्ता के लिए ऑनबोर्डिंग, सेटिंग, और ऐप्लिकेशन के दूसरे प्लैटफ़ॉर्म में इंटिग्रेट किया जा सकता है. इससे, आपके लिए Google Assistant की कार्रवाई को खोजने और उससे जुड़ने के मौके तैयार होते हैं. उदाहरण के लिए, लिंक करने के बाद, उपयोगकर्ता को सीधे अपनी कार्रवाई पर ले जाने का विकल्प दिया जा सकता है.
उपयोगकर्ताओं को मिलने वाले फ़ायदों में ये शामिल हैं:
- उपयोगकर्ता आपके ऐप्लिकेशन में खाता जोड़ने की प्रोसेस शुरू कर सकते हैं और उसे पूरा कर सकते हैं. इस तरह के माहौल के बारे में वे पहले से जानते हैं.
- उपयोगकर्ताओं को लॉगिन क्रेडेंशियल की ज़रूरत नहीं है, क्योंकि वे डिवाइस और आपके मोबाइल ऐप्लिकेशन में पहले ही पुष्टि कर चुके हैं.
डेवलपर के लिए ये फ़ायदे हैं:
- अपने मोबाइल ऐप्लिकेशन में खाता लिंक करने की सुविधा का प्रचार और शुरुआत करना , जिससे जुड़ाव और खातों की संख्या बढ़ गई है.
- कन्वर्ज़न मानक में बढ़ोतरी, क्योंकि उपयोगकर्ता स्टैंडर्ड वेब पर आधारित OAuth फ़्लो के मुकाबले कम चरणों में, लिंक करने की प्रोसेस पूरी कर सकते हैं.
- आपके प्लैटफ़ॉर्म (Android) से लिंक लागू करने के लिए कम इंजीनियरिंग कोशिश करनी होगी, क्योंकि यह फ़्लो आपके मौजूदा OAuth2.0 कोड लागू करने के तरीके का फ़ायदा उठाता है. यह मानते हुए कि आपने पहले ही इसे लागू कर लिया है.
- ड्रॉप-ऑफ़ दरें कम की गई है, क्योंकि उपयोगकर्ताओं को अपने लॉगिन क्रेडेंशियल दोबारा डालने की ज़रूरत नहीं है और वे कम चरणों में यह प्रक्रिया पूरी कर सकते हैं. ड्रॉप-ऑफ़ दरें, फ़्लो में 80% तक भी हो सकती हैं, जहां उपयोगकर्ताओं को अपने 'साइन इन' क्रेडेंशियल डालने या दर्ज करने की ज़रूरत होती है.
यह कैसे काम करता है
अपने प्लैटफ़ॉर्म से खाता लिंक करने के लिए, यह तरीका अपनाएं:
- उपयोगकर्ता आपके मोबाइल ऐप्लिकेशन पर, लिंक करने वाले ट्रिगर पर क्लिक / टॉगल करेगा.
- उपयोगकर्ता, लिंक करने के लिए Google खाता चुनता है.
- उपयोगकर्ता, लिंक करने के लिए डिवाइस पर मौजूदा Google खाता चुनता है या किसी नए खाते से साइन इन करता है
- उपयोगकर्ता को Google की होस्ट की गई सहमति वाली स्क्रीन दिखाई जाती हैं. साथ ही, उसे लिंक करने की प्रोसेस जारी रखने या उसे रोकने के लिए सहमत होना होता है.
- उपयोगकर्ता को आपकी सहमति वाली स्क्रीन दिखाई जाती है. उसे लिंक करने की प्रोसेस जारी रखने के लिए सहमति देनी होगी या रद्द करने के लिए सहमति रद्द करनी होगी.
- इस लिंक से, आपकी सेवा पर मौजूद उपयोगकर्ता के खाते और उसके Google खाते को जोड़ दिया जाता है.

पहली इमेज. अपने प्लैटफ़ॉर्म फ़्लो से लिंक करना
ज़रूरी शर्तें
अपने प्लैटफ़ॉर्म से लिंक करने की सुविधा लागू करने के लिए, आपको ये चीज़ें चाहिए:
- Android ऐप्लिकेशन.
- आपके पास OAuth 2.0 ऑथराइज़ेशन कोड फ़्लो के साथ काम करने वाले OAuth 2.0 सर्वर का मालिकाना हक हो. साथ ही, आपके पास उसे मैनेज और रखरखाव करने का अधिकार हो.
सेटअप
यहां दिया गया तरीका अपनाने से पहले, आपको खाता लिंक करने की रजिस्ट्रेशन प्रोसेस पूरी करनी होगी.
डेवलपमेंट एनवायरमेंट सेट अप करना
अपने डेवलपमेंट होस्ट पर, Google Play services का नया वर्शन पाएं:
- Android SDK Manager खोलें.
SDK टूल में जाकर, Google Play services ढूंढें.
अगर इन पैकेज का स्टेटस 'इंस्टॉल किया गया' नहीं है, तो दोनों पैकेज चुनें और पैकेज इंस्टॉल करें पर क्लिक करें.
अपने ऐप्लिकेशन को कॉन्फ़िगर करना
प्रोजेक्ट-लेवल की
build.gradle
फ़ाइल में,buildscript
औरallprojects
, दोनों सेक्शन में Google की मेवन रिपॉज़िटरी शामिल करें.buildscript { repositories { google() } } allprojects { repositories { google() } }
अपने मॉड्यूल की ऐप्लिकेशन-लेवल Gradle फ़ाइल में, “Google से लिंक करें” एपीआई की डिपेंडेंसी जोड़ें. आम तौर पर, यह फ़ाइल
app/build.gradle
होती है:dependencies { implementation 'com.google.android.gms:play-services-auth:21.3.0' }
अपने प्लैटफ़ॉर्म से लिंक करने की सुविधा जोड़ना
आपके प्लैटफ़ॉर्म फ़्लो से लिंक करने पर, Google आपकी सेवा से मिले ऐक्सेस टोकन को सेव कर लेगा. उपयोगकर्ता को टोकन वापस करने से पहले, उसकी सहमति लेना ज़रूरी है.
उपयोगकर्ता की सहमति लेने और Google Play services SDK के ज़रिए ऑथराइज़ेशन कोड टोकन दिखाने के लिए, यह तरीका अपनाएं.
ऐसा PendingIntent बनाएं जो आपकी सहमति वाली गतिविधि को लॉन्च कर सके - सहमति, Play Services 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()
तरीके को कॉल किया जाता है. अगर उपयोगकर्ता आपकी सहमति अस्वीकार या रद्द करता है, तोonConsentRejectedOrCanceled()
औरonConsentAccpeted()
तरीके को कॉल किया जाता है.टोकन सेव करने के लिए अनुरोध बनाएं. साथ ही, ऊपर दिए गए पहले चरण में बनाया गया
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 पर ले जाएं.