Я использую Google Drive v3 API в своем приложении для Android, как в этом руководстве: https://ammar.lanui.online/integrate-google-drive-rest-api-on-android-app-bc4ddbd90820
Это мой код для входа в Google:
Scope SCOPE_DRIVE = new Scope(DriveScopes.DRIVE_FILE);
if (!GoogleSignIn.hasPermissions(
GoogleSignIn.getLastSignedInAccount(this),
SCOPE_DRIVE)) {
GoogleSignIn.requestPermissions(
this,
RC_SIGN_IN,
GoogleSignIn.getLastSignedInAccount(this),
SCOPE_DRIVE);
} else {
readCotnracts();
}
и для создания службы Drive:
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(SettingsActivity.this);
GoogleAccountCredential credential =
GoogleAccountCredential.usingOAuth2(
this, Collections.singleton(DriveScopes.DRIVE_FILE));
credential.setSelectedAccount(account.getAccount());
com.google.api.services.drive.Drive googleDriveService =
new com.google.api.services.drive.Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
credential)
.setApplicationName("My App")
.build();
}
К сожалению, каждый раз, когда я звоню в Drive Service, я получаю эту ошибку:
com.google.android.gms.tasks.RuntimeExecutionException: b.d.c.a.b.d.b: 401 Unauthorized
{
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
Понятия не имею, что не так, я включил Drive API вКонсоль Google, добавлено согласие OAuth и создан идентификатор клиента OAuth.Спасибо