अपने प्लैटफ़ॉर्म से, सीधे Google खाते को लिंक करना शुरू करें.

खाता जोड़ना सीधे आपके मोबाइल ऐप्लिकेशन में पूरा किया जा सकता है. इससे आपके उपयोगकर्ता अपने Google खाते से आपकी सेवा का खाता जोड़ सकते हैं. जोड़ा गया लिंक, Google को उस डेटा का ऐक्सेस देता है जिसे उपयोगकर्ता शेयर करने की सहमति देता है.

इस तरीके से, Assistant से बातचीत करने के बजाय आपके ऐप्लिकेशन के जाने-पहचाने कॉन्टेक्स्ट में, उपयोगकर्ताओं को जोड़कर खाता जोड़ने की परफ़ॉर्मेंस को बेहतर बनाया जाता है. इसे उपयोगकर्ता के लिए ऑनबोर्डिंग, सेटिंग, और ऐप्लिकेशन के दूसरे प्लैटफ़ॉर्म में इंटिग्रेट किया जा सकता है. इससे, आपके लिए Google Assistant की कार्रवाई को खोजने और उससे जुड़ने के मौके तैयार होते हैं. उदाहरण के लिए, लिंक करने के बाद, उपयोगकर्ता को सीधे अपनी कार्रवाई पर ले जाने का विकल्प दिया जा सकता है.

उपयोगकर्ताओं को मिलने वाले फ़ायदों में ये शामिल हैं:

  • उपयोगकर्ता आपके ऐप्लिकेशन में खाता जोड़ने की प्रोसेस शुरू कर सकते हैं और उसे पूरा कर सकते हैं. इस तरह के माहौल के बारे में वे पहले से जानते हैं.
  • उपयोगकर्ताओं को लॉगिन क्रेडेंशियल की ज़रूरत नहीं है, क्योंकि वे डिवाइस और आपके मोबाइल ऐप्लिकेशन में पहले ही पुष्टि कर चुके हैं.

डेवलपर के लिए ये फ़ायदे हैं:

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

यह कैसे काम करता है

आपके प्लैटफ़ॉर्म से लिंक करने की प्रोसेस, इन चरणों में पूरी की जाती है:

  1. उपयोगकर्ता आपके मोबाइल ऐप्लिकेशन पर लिंक करने के ट्रिगर पर क्लिक / टॉगल करेगा.
  2. उपयोगकर्ता लिंक करने के लिए Google खाता चुनता है.
    1. लिंक करने के लिए, उपयोगकर्ता डिवाइस पर कोई मौजूदा Google खाता चुनता है या किसी नए खाते से साइन इन करता है
  3. उपयोगकर्ता को Google की ओर से होस्ट की गई सहमति वाली स्क्रीन दिखाई जाती हैं. साथ ही, लिंक करने की प्रोसेस को रोकने के लिए, उपयोगकर्ता को जारी रखने या रद्द करने की सहमति देनी होती है.
  4. उपयोगकर्ता को आपकी सहमति वाली स्क्रीन दिखाई जाती है. लिंक करने की प्रोसेस को रोकने के लिए, उपयोगकर्ता को आगे बढ़ने या रद्द करने के लिए सहमति देनी होगी.
  5. यह लिंक उपयोगकर्ता के खाते, आपकी सेवा, और उसके Google खाते के बीच बनाया जाता है.

पहला डायग्राम. अपने प्लैटफ़ॉर्म फ़्लो की मदद से लिंक करना

ज़रूरी शर्तें

अपने प्लैटफ़ॉर्म से Link लागू करने के लिए, आपको इनकी ज़रूरत होगी:

  • Android ऐप्लिकेशन.
  • आपके पास OAuth 2.0 सर्वर का मालिकाना हक होना चाहिए, उसे मैनेज करना चाहिए, और उसे मैनेज करना चाहिए. यह सर्वर, OAuth 2.0 ऑथराइज़ेशन कोड फ़्लो के साथ काम करता है.

सेटअप

नीचे दिया गया तरीका अपनाने से पहले, आपको खाता लिंक करने की रजिस्ट्रेशन की प्रोसेस पूरी करनी होगी.

डेवलपमेंट एनवायरमेंट सेटअप करें

अपने डेवलपमेंट होस्ट पर सबसे नई Google Play सेवाएं पाएं:

  1. Android SDK Manager खोलें.
  1. SDK टूल में जाकर, Google Play services पर जाएं.

  2. अगर इन पैकेज की स्थिति इंस्टॉल नहीं है, तो दोनों को चुनें और पैकेज इंस्टॉल करें पर क्लिक करें.

अपने ऐप्लिकेशन को कॉन्फ़िगर करें

  1. अपने प्रोजेक्ट-लेवल की build.gradle फ़ाइल में, अपने buildscript और allprojects, दोनों सेक्शन में Google की Maven रिपॉज़िटरी शामिल करें.

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. अपने मॉड्यूल की ऐप्लिकेशन-लेवल की ग्रेडल फ़ाइल में, “Google से लिंक करें” एपीआई के लिए डिपेंडेंसी जोड़ें. आम तौर पर, यह app/build.gradle होती है:

    dependencies {
      implementation 'com.google.android.gms:play-services-auth:21.0.0'
    }
    

आपके प्लैटफ़ॉर्म फ़्लो से लिंक करने की वजह से, आपकी सेवा से मिला ऐक्सेस टोकन मिलेगा और Google सेव करेगा. उपयोगकर्ता को टोकन लौटाने से पहले, उसकी सहमति मिलनी ज़रूरी है.

उपयोगकर्ता से सहमति लेने और Google Play Services SDK टूल की मदद से, पुष्टि करने वाला कोड टोकन पाने के लिए, नीचे दिया गया तरीका अपनाएं.

  1. ऐसा 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();
    
  2. सहमति के इंटेंट को मैनेज करने के लिए, मिलती-जुलती गतिविधि बनाएं

    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() तरीकों को कॉल किया जाता है.

  3. टोकन सेव करने के लिए एक अनुरोध बनाएं और दूसरे कॉन्फ़िगरेशन पैरामीटर के साथ, ऊपर पहले चरण में बनाए गए 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 पर ले जाएं.

रेफ़रंस

Android auth एपीआई के रेफ़रंस के लिए दस्तावेज़