Устаревший устаревший код
Код: Выделить всё
// GoogleSignInClient.silentSignIn() -> GoogleSignInAccount -> Drive object
GoogleSignInClient googleSignInClient = buildGoogleSignInClient();
Task task = googleSignInClient.silentSignIn();
GoogleSignInAccount googleSignInAccount = task.getResult()
Drive drive = getDriveService(googleSignInAccount)
public static GoogleSignInClient buildGoogleSignInClient() {
GoogleSignInOptions signInOptions =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(GOOGLE_DRIVE_CLIENT_ID)
.requestEmail()
.requestScopes(new Scope(DriveScopes.DRIVE_APPDATA))
.build();
return GoogleSignIn.getClient(WeNoteApplication.instance(), signInOptions);
}
private static Drive getDriveService(GoogleSignInAccount googleSignInAccount) {
GoogleAccountCredential credential =
GoogleAccountCredential.usingOAuth2(
MyApplication.instance(), Collections.singleton(DriveScopes.DRIVE_APPDATA)
);
credential.setSelectedAccount(googleSignInAccount.getAccount());
Drive googleDriveService =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
credential
)
.setApplicationName(APPLICATION_NAME)
.build();
return googleDriveService;
}
На основе https://stackoverflow.com/a/78605090/72437
Похоже, что я могу пропустить использование Credential Manager API (аутентификация) и сразу перейти к API авторизации (авторизация) )
https://developers.google.com/identity/ ... on/android (авторизация)
Но чем заменить устаревший googleSignInClient.silentSignIn?
Имея googleSignInClient.silentSignIn, он позволяет пользователю просто войти в систему один раз и может продолжать использовать службу Google Drive без истечения срока действия в течение длительного периода. времени.
Могу ли я узнать, как мы можем добиться эквивалента с помощью API авторизации?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/792 ... api-and-au
Мобильная версия