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

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

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

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

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

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

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

आपके प्लैटफ़ॉर्म को लिंक करने की प्रोसेस नीचे दिए गए चरणों में पूरी की गई है:

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

पहली इमेज. अपने 'प्लैटफ़ॉर्म' फ़्लो से लिंक करें

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

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

  • 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. अपने मॉड्यूल की ऐप्लिकेशन-लेवल की Gradle फ़ाइल में, “Google से लिंक करें” एपीआई के लिए डिपेंडेंसी जोड़ें. आम तौर पर, यह फ़ाइल app/build.gradle होती है:

    dependencies {
      implementation 'com.google.android.gms:play-services-auth:21.2.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 की पुष्टि करने वाले एपीआई का रेफ़रंस दस्तावेज़