כדי ליהנות מחוויית המשתמש הטובה ביותר, מומלץ לבקש כמה שפחות היקפים
הכניסה הראשונית של משתמשים. אם הפונקציונליות העיקרית של האפליקציה לא קשורה
שירות Google, ההגדרה של GoogleSignInOptions.DEFAULT_SIGN_IN
היא לעיתים קרובות
כל מה שצריך בכניסה לחשבון.
אם באפליקציה יש תכונות שיכולות להשתמש בנתונים של Google API, אבל לא כחלק מהפונקציונליות העיקרית של האפליקציה, צריך לעצב אותה כך לטפל באלגנטיות במקרים שבהם אין גישה לנתוני ה-API. לדוגמה, אפשר להסתיר רשימה של קבצים שנשמרו לאחרונה כשהמשתמש לא העניק ל-Drive גישה.
צריך לבקש היקפי הרשאות נוספים שדרושים לך כדי לגשת רק ל-Google APIs כשהמשתמש מבצע פעולה שמחייבת גישה ל-API מסוים. עבור לדוגמה, אפשר לבקש הרשאת גישה ל-Drive של המשתמש רק כאשר משתמש מקיש על 'שמירה ב-Drive' בפעם הראשונה.
השיטה הזו תעזור לכם להימנע מהצפת משתמשים חדשים או מבלבלות לגבי המשתמשים ולמה הם מבקשים הרשאות מסוימות.
בקשת הרשאות שנדרשות בעקבות פעולות של משתמשים
כשמשתמש מבצע פעולה שמחייבת היקף שלא התבקש ב-
כניסה, התקשרות אל GoogleSignIn.hasPermissions
כדי לבדוק אם המשתמש כבר
שקיבלו את ההרשאות הנדרשות. אם לא, צריך להתקשר אל GoogleSignIn.requestPermissions
כדי להפעיל פעילות שמבקשת את ההיקפים הנדרשים הנוספים
משתמש.
לדוגמה, אם משתמש מבצע פעולה שמחייבת גישה ל-Drive שלו אחסון אפליקציות, בצעו את הפעולות הבאות:
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();
}
בקריאה החוזרת (callback) של 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
כדי לחפש ולקבל קבוצת הרשאות נוספות
בצורה נוחה.