'Android के लिए Google साइन-इन' पुरानी लाइब्रेरी पर आधारित है.
नई लाइब्रेरी में कई नई सुविधाएं मौजूद नहीं हैं. अब इसे Google Identity सेवाओं 'एक टैप में साइन इन करें/साइन अप करें' में बताया गया है.
बेहतरीन उपयोगकर्ता अनुभव के लिए, आपको शुरुआत में उपयोगकर्ताओं के तौर पर साइन इन करते समय, कम से कम दायरों का अनुरोध करना चाहिए. अगर आपके ऐप्लिकेशन के मुख्य फ़ंक्शन Google की सेवा से नहीं जुड़े हैं, तो GoogleSignInOptions.DEFAULT_SIGN_IN
साइन इन करते समय, आपको इन सभी कॉन्फ़िगरेशन की ज़रूरत पड़ती है.
अगर आपके ऐप्लिकेशन में ऐसी सुविधाएं हैं जो Google API डेटा का इस्तेमाल कर सकती हैं, लेकिन आपके ऐप्लिकेशन के मुख्य फ़ंक्शन के तौर पर इसकी ज़रूरत नहीं है, तो आपको अपना ऐप्लिकेशन इस तरह डिज़ाइन करना चाहिए कि एपीआई डेटा ऐक्सेस न होने पर, मामलों को अच्छी तरह से हैंडल किया जा सके. उदाहरण के लिए, आप उपयोगकर्ता के पास हाल ही में सेव की गई फ़ाइलों की सूची छिपा सकते हैं, बशर्ते उपयोगकर्ता को 'डिस्क' का ऐक्सेस न दिया गया हो.
आपको दूसरे दायरों का अनुरोध करना चाहिए, जो आपको Google API के ऐक्सेस की ज़रूरत सिर्फ़ तब होती है, जब उपयोगकर्ता ऐसी कार्रवाई करता है जिसके लिए किसी खास एपीआई के ऐक्सेस की ज़रूरत होती है. उदाहरण के लिए, आप उपयोगकर्ता के Drive को ऐक्सेस करने की अनुमति सिर्फ़ तब मांग सकते हैं, जब उपयोगकर्ता पहली बार किसी "Drive में सेव करें" बटन पर टैप करे.
इस तकनीक का इस्तेमाल करके, आप नए उपयोगकर्ताओं को परेशानी में नहीं डाल सकते या उपयोगकर्ताओं को उलझन में नहीं डाल सकते कि कुछ खास अनुमतियों के लिए उनसे क्यों पूछा जा रहा है.
उपयोगकर्ता की कार्रवाइयों के लिए ज़रूरी अनुमतियों का अनुरोध करना
जब भी कोई उपयोगकर्ता ऐसी कार्रवाई करता है जिसके लिए साइन इन करते समय, अनुरोध की गई सीमा की ज़रूरत नहीं होती है, तो GoogleSignIn.hasPermissions
पर कॉल करके पता लगाएं कि उपयोगकर्ता ने पहले से ही ज़रूरी अनुमतियां दी हैं या नहीं. अगर नहीं, तो GoogleSignIn.requestPermissions
को कॉल करके ऐसी गतिविधि लॉन्च करें जो उपयोगकर्ता से अन्य ज़रूरी दायरों का अनुरोध करती हो.
उदाहरण के लिए, अगर कोई उपयोगकर्ता ऐसी कार्रवाई करता है जिसके लिए उसके डिस्क ऐप्लिकेशन स्टोरेज को ऐक्सेस करना ज़रूरी है, तो ये काम करें:
if (!GoogleSignIn.hasPermissions(
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER)) {
GoogleSignIn.requestPermissions(
MyExampleActivity.this,
RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER);
} else {
saveToDriveAppFolder();
}
अपनी गतिविधि में onActivityResult
कॉलबैक में, यह देखा जा सकता है कि ज़रूरी
अनुमतियां मिली हैं या नहीं. अगर हैं, तो उपयोगकर्ता कार्रवाई करें.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
saveToDriveAppFolder();
}
}
}
आप आसानी से GoogleSignInOptionsExtension
की अनुमति पाने के लिए, hasPermissions
और requestPermissions
को पास कर सकते हैं. साथ ही, आप अनुमतियों का एक सेट भी आसानी से पा सकते हैं.