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

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