У меня есть приложение, в которое я хочу загрузить файл базы данных SQLite в учетную запись google drive пользователя.
Поскольку API Google Android перестанет работать, я подумал, что для реализации REST API, реализация REST API требует аутентификации.Я использую Google Sign-in, но REST API требует токен доступа определенного типа. Как это получить?
Я создал учетную запись в консоли разработчика, включил Drive API и добавил Scope for drive / auth.
Я достиг логинафункциональность с использованием официальной документации, https://developers.google.com/identity/sign-in/android/sign-in
Используя этот код, я могу получить электронную почту пользователя, а также создать DriveService,
GoogleSignInOptions googleSignInOptions = new
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(DriveScopes.DRIVE))
.requestEmail()
.build();
googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
Intent googleSignInIntent = googleSignInClient.getSignInIntent();
startActivityForResult(googleSignInIntent, REQUEST_CODE_SIGN_IN);
В отношении результата деятельности, я могу получитьучетная запись пользователя, используя учетную запись, я создаю DriveServiceHelper
mDriveServiceHelper = new DriveServiceHelper(getGoogleDriveService(getApplicationContext(), googleSignInAccount, "appName"));
Теперь, когда я пытаюсь создать папку, он показывает мне ошибку о (UserRecoverableAuthIOException),
См. Код, с помощью которого я создаю папку.
public Task<GoogleDriveFileHolder> createFolder(final String folderName, @Nullable final String folderId) {
return Tasks.call(mExecutor, new Callable<GoogleDriveFileHolder>() {
@Override
public GoogleDriveFileHolder call() {
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
List<String> root;
if (folderId == null) {
root = Collections.singletonList("root");
} else {
root = Collections.singletonList(folderId);
}
File metadata = new File()
.setParents(root)
.setMimeType(DriveFolder.MIME_TYPE)
.setName(folderName);
File googleFile = null;
googleFile = mDriveService.files().create(metadata).execute();
googleDriveFileHolder.setId(googleFile.getId());
return googleDriveFileHolder;
}
});
}
Я пытался устранить ошибку, используя различные ветки обсуждения, доступные в StackOverflow, но ни один из них не работал, может кто-нибудь подсказать мне это?