Получение invalid_scope при попытке получить токен refre sh через Google API - PullRequest
0 голосов
/ 25 февраля 2020

Я не могу использовать Google API с Oauth. Чего мне не хватает?

Сообщение об ошибке:

com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
  "error" : "invalid_scope",
  "error_description" : "Invalid oauth scope or ID token audience provided."
}

Java код:

private void printLabels ( ) {

HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();

List<String> scopes = new ArrayList<>();
scopes.add(GmailScopes.GMAIL_LABELS);

GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("C:\\test\\credential.json"));
credential.createScoped(scopes);
credential.refreshToken();      // error happens here

String appName = "VS";
Gmail.Builder builder = new Gmail.Builder(httpTransport, jsonFactory, credential)
        .setApplicationName(appName);
Gmail gmail = builder.build();

Object o = gmail.users().labels().list("me").execute();
System.out.println("o = " + o);

}

Конфигурация Google API:

  1. Вы вошли в систему https://console.developers.google.com/
  2. Создан проект
  3. Включен API Gmail
  4. Создана учетная запись службы (назначена роль владельца)
  5. Загрузить json Файл учетных данных
  6. Включен OAuth экран согласия - внутренний (не уверен, что мне это нужно, так как я хочу получить доступ только к своим электронным письмам)
  7. Включение делегирования домена для служебной учетной записи (не уверен, что мне это тоже нужно)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...