हम कर रहे हैं वेब के लिए Google साइन-इन जावास्क्रिप्ट मंच लाइब्रेरी बंद किए जा रहे । के लिए प्रमाणीकरण और उपयोगकर्ता साइन-इन, दोनों के लिए नए Google पहचान सेवाएं SDK का उपयोग वेब और एंड्रॉयड के बजाय

Google साइन-इन को अपने Android ऐप में एकीकृत करना

अपने Android ऐप में Google साइन-इन को एकीकृत करने के लिए, Google साइन-इन को कॉन्फ़िगर करें और अपने ऐप के लेआउट में एक बटन जोड़ें जो साइन-इन प्रवाह शुरू करता है।

शुरू करने से पहले

एक गूगल API कंसोल प्रोजेक्ट को कॉन्फ़िगर करें और अपने Android स्टूडियो परियोजना की स्थापना

Google साइन-इन और GoogleSignInClient ऑब्जेक्ट को कॉन्फ़िगर करें

  1. आपकी साइन-इन गतिविधि के दशक में onCreate विधि, अपने अनुप्रयोग के लिए आवश्यक उपयोगकर्ता डेटा की मांग करने के लिए कॉन्फ़िगर Google साइन-इन। उदाहरण के लिए, अनुरोध उपयोगकर्ताओं के आईडी और मूलभूत जानकारी को Google साइन-इन कॉन्फ़िगर करने के लिए, एक बनाने GoogleSignInOptions साथ आपत्ति DEFAULT_SIGN_IN पैरामीटर। अनुरोध उपयोगकर्ताओं के ईमेल पते के लिए और साथ ही, बनाने GoogleSignInOptions साथ आपत्ति requestEmail विकल्प।

    // Configure sign-in to request the user's ID, email address, and basic
    // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

    आप का उपयोग Google API के लिए अतिरिक्त कार्यक्षेत्रों का अनुरोध करने की जरूरत है, उन लोगों के साथ निर्दिष्ट requestScopes । सर्वोत्तम उपयोगकर्ता अनुभव के लिए, साइन-इन पर, केवल उन कार्यक्षेत्रों का अनुरोध करें जो आपके ऐप के न्यूनतम रूप से कार्य करने के लिए आवश्यक हैं। किसी भी अतिरिक्त दायरे का अनुरोध केवल तभी करें जब आपको उनकी आवश्यकता हो, ताकि आपके उपयोगकर्ताओं को उनके द्वारा की गई कार्रवाई के संदर्भ में सहमति स्क्रीन दिखाई दे। देखें अतिरिक्त कार्यक्षेत्र का निवेदन

  2. फिर, यह भी अपने में गतिविधि के साइन-इन onCreate विधि, एक बनाने GoogleSignInClient विकल्प आपके द्वारा निर्दिष्ट के साथ वस्तु।

    // Build a GoogleSignInClient with the options specified by gso.
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

मौजूदा साइन-इन उपयोगकर्ता की जांच करें

अपनी गतिविधि के दशक में onStart विधि, जाँच पहले से कोई उपयोगकर्ता Google के साथ आपके एप्लिकेशन में प्रवेश कर लिया है।

// Check for existing Google Sign In account, if the user is already signed in
// the GoogleSignInAccount will be non-null.
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
updateUI(account);

यदि GoogleSignIn.getLastSignedInAccount एक रिटर्न GoogleSignInAccount वस्तु (बजाय null ), उपयोगकर्ता पहले से ही गूगल के साथ आपके एप्लिकेशन में प्रवेश किया है। तदनुसार अपना UI अपडेट करें—अर्थात, साइन-इन बटन छिपाएं, अपनी मुख्य गतिविधि लॉन्च करें, या जो भी आपके ऐप के लिए उपयुक्त हो।

यदि GoogleSignIn.getLastSignedInAccount रिटर्न null , उपयोगकर्ता ने अभी तक Google के साथ आपके एप्लिकेशन में प्रवेश नहीं किया है। Google साइन-इन बटन प्रदर्शित करने के लिए अपना UI अपडेट करें।

अपने ऐप में Google साइन-इन बटन जोड़ें

  1. मानक Google साइन-इन बटन जोड़े SignInButton आपके आवेदन के लेआउट में:

    <com.google.android.gms.common.SignInButton
     android:id="@+id/sign_in_button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />
    
  2. वैकल्पिक: यदि आप डिफ़ॉल्ट साइन-इन का उपयोग कर रहे बटन ग्राफ़िक के बजाय अपने खुद के साइन-इन बटन संपत्ति प्रदान करते हैं, तो आप के साथ बटन के आकार को अनुकूलित कर सकते setSize विधि।

    // Set the dimensions of the sign-in button.
    SignInButton signInButton = findViewById(R.id.sign_in_button);
    signInButton.setSize(SignInButton.SIZE_STANDARD);
    
  3. एंड्रॉयड गतिविधि में (उदाहरण के लिए, में onCreate विधि), रजिस्टर अपने बटन के OnClickListener जब क्लिक उपयोगकर्ता प्रवेश करने के लिए:

    findViewById(R.id.sign_in_button).setOnClickListener(this);
    

साइन-इन प्रवाह प्रारंभ करें

  1. साइन-इन खाता चयनकर्ता की छवि गतिविधि के दशक में onClick विधि, संभाल साइन-इन बटन नल के साथ एक साइन-इन आशय बनाने के द्वारा getSignInIntent विधि, और साथ आशय शुरू करने startActivityForResult

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.sign_in_button:
                signIn();
                break;
            // ...
        }
    }
    
    private void signIn() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

    इंटेंट शुरू करने से उपयोगकर्ता को साइन इन करने के लिए एक Google खाते का चयन करने का संकेत मिलता है। आप परे कार्यक्षेत्रों का अनुरोध किया है profile , email , और openid , उपयोगकर्ता भी अनुरोध किया संसाधनों तक पहुंच देने के लिए संकेत दिया जाता है।

  2. में उपयोगकर्ता के प्रवेश के बाद, आप एक प्राप्त कर सकते हैं GoogleSignInAccount गतिविधि के में उपयोगकर्ता के लिए वस्तु onActivityResult विधि।

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            // The Task returned from this call is always completed, no need to attach
            // a listener.
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            handleSignInResult(task);
        }
    }

    GoogleSignInAccount वस्तु के बारे में जानकारी शामिल है साइन-इन उपयोगकर्ता, जैसे उपयोगकर्ता के नाम के रूप में।

    private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);
    
            // Signed in successfully, show authenticated UI.
            updateUI(account);
        } catch (ApiException e) {
            // The ApiException status code indicates the detailed failure reason.
            // Please refer to the GoogleSignInStatusCodes class reference for more information.
            Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
            updateUI(null);
        }
    }

    तुम भी साथ उपयोगकर्ता का ईमेल पता प्राप्त कर सकते हैं getEmail , उपयोगकर्ता के Google आईडी (क्लाइंट-साइड उपयोग के लिए) के साथ getId , और एक आईडी के साथ उपयोगकर्ता के लिए टोकन getIdToken । यदि आप एक बैकएंड सर्वर में पारित करने के लिए उपयोगकर्ता साइन इन-वर्तमान की जरूरत है, आईडी अपने बैकएंड सर्वर टोकन भेजने और सर्वर पर टोकन मान्य।