अपने Android ऐप्लिकेशन में 'Google साइन इन' को इंटिग्रेट करने के लिए, 'Google साइन इन' को कॉन्फ़िगर करें. इसके बाद, अपने ऐप्लिकेशन के लेआउट में एक ऐसा बटन जोड़ें जिससे साइन इन करने की प्रोसेस शुरू होती है.
वेब कंटेनर इंस्टॉल करने से पहले
Google API Console प्रोजेक्ट कॉन्फ़िगर करें और अपना Android Studio प्रोजेक्ट सेट अप करें.
'Google साइन इन' और GoogleSignInClient ऑब्जेक्ट को कॉन्फ़िगर करें
अपनी साइन इन गतिविधि के
onCreate
तरीके में, अपने ऐप्लिकेशन के लिए ज़रूरी उपयोगकर्ता डेटा का अनुरोध करने के लिए, 'Google साइन इन' को कॉन्फ़िगर करें. उदाहरण के लिए, उपयोगकर्ताओं का आईडी और प्रोफ़ाइल की बुनियादी जानकारी मांगने के लिए 'Google साइन इन' को कॉन्फ़िगर करने के लिए,DEFAULT_SIGN_IN
पैरामीटर के साथGoogleSignInOptions
ऑब्जेक्ट बनाएं. उपयोगकर्ताओं के ईमेल पतों का भी अनुरोध करने के लिए,requestEmail
विकल्प की मदद सेGoogleSignInOptions
ऑब्जेक्ट बनाएं.// 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
में उन दायरों के बारे में बताएं. साइन इन करते समय, उपयोगकर्ताओं को बेहतरीन अनुभव देने के लिए, सिर्फ़ उन दायरों का अनुरोध करें जो आपके ऐप्लिकेशन के कम से कम काम करने के लिए ज़रूरी हों. किसी भी अतिरिक्त दायरों का अनुरोध सिर्फ़ तब करें, जब आपको उनकी ज़रूरत हो. इससे, उपयोगकर्ताओं को उनकी कार्रवाई के हिसाब से सहमति वाली स्क्रीन दिखेगी. अन्य दायरों के लिए अनुरोध करना देखें.इसके बाद, अपनी साइन इन गतिविधि के
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
, null
के बजाय GoogleSignInAccount
ऑब्जेक्ट दिखाता है,
तो इसका मतलब है कि उपयोगकर्ता ने पहले ही Google से आपके ऐप्लिकेशन में साइन इन किया है.
अपने यूज़र इंटरफ़ेस (यूआई) को उसी हिसाब से अपडेट करें. जैसे, 'साइन-इन करें' बटन को छिपाएं, अपनी मुख्य गतिविधि को लॉन्च करें या जो भी आपके ऐप्लिकेशन के लिए सही हो.
अगर GoogleSignIn.getLastSignedInAccount
, null
दिखाता है, तो इसका मतलब है कि उस व्यक्ति ने अभी तक आपके ऐप्लिकेशन में Google से साइन इन नहीं किया है. 'Google साइन इन' बटन दिखाने के लिए, अपना यूज़र इंटरफ़ेस (यूआई) अपडेट करें.
अपने ऐप्लिकेशन में 'Google साइन इन' बटन जोड़ें
अपने ऐप्लिकेशन के लेआउट में
SignInButton
जोड़ें:<com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" />
ज़रूरी नहीं: अगर साइन-इन बटन की ऐसेट उपलब्ध कराने के बजाय, डिफ़ॉल्ट रूप से साइन इन बटन वाले ग्राफ़िक का इस्तेमाल किया जा रहा है, तो
setSize
वाले तरीके की मदद से बटन के साइज़ को अपनी पसंद के मुताबिक बनाया जा सकता है.// Set the dimensions of the sign-in button. SignInButton signInButton = findViewById(R.id.sign_in_button); signInButton.setSize(SignInButton.SIZE_STANDARD);
Android पर की गई गतिविधि (उदाहरण के लिए,
onCreate
तरीके में) में, अपने बटन केOnClickListener
को रजिस्टर करें, ताकि जब उपयोगकर्ता इस पर क्लिक करे, तब उसे साइन इन कर सकें:findViewById(R.id.sign_in_button).setOnClickListener(this);
साइन इन करने की प्रोसेस शुरू करें
गतिविधि के
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
से ज़्यादा दायरों का अनुरोध किया है, तो उपयोगकर्ता को अनुरोध किए गए संसाधनों का ऐक्सेस देने के लिए भी कहा जाएगा.उपयोगकर्ता के साइन इन करने के बाद, गतिविधि के
onActivityResult
तरीके में उसके लिएGoogleSignInAccount
ऑब्जेक्ट मिल सकता है.@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
के साथ उपयोगकर्ता का एक आईडी टोकन भी मिल सकता है. अगर आपको साइन-इन किए हुए मौजूदा उपयोगकर्ता को बैकएंड सर्वर पर पास करना है, तो अपने बैकएंड सर्वर पर आईडी टोकन भेजें और सर्वर पर टोकन की पुष्टि करें.