Использование сервисных аккаунтов и oauth2 для вызова autoML Google API

Я обучил модель классификации изображений с помощью autoML API, и теперь я хотел бы создать программу JAVA, которая прогнозирует данные изображения с использованием этой модели. Как указано в документации для этого API требуется область действия OAuth: https://www.googleapis.com/auth/cloud-platform.

Мне не нужен пользователь для входа в систему, так как я не буду использовать какие-либо личные данные, поэтому я решил использовать учетные записи служб и выполнил действия, указанные в OAuth2 для учетных записей служб, чтобы сгенерировать токен доступа.

Процесс идет хорошо, и я получаю ответ:

    {"access_token": "access_token_string", "expires_in": 3600, "token_type": "Bearer"}

Затем я возвращаюсь к отправке почтового запроса для прогнозирования autoML и устанавливаю заголовок «Авторизация» на «Bearer access_token_string». У меня есть сообщение об ошибке

{"error": 
   {
   "code": 403,
   "message": "The caller does not have permission",
   "status": "PERMISSION_DENIED"
   }
}

Я знаю, что запрос на прогноз верен, потому что я пробовал его с помощью accessToken, созданного для веб-приложений (просто хотел протестировать). Итак, проблема в части авторизации, я проверил, что моя учетная запись службы также имеет все необходимые разрешения. Я не знаю, в чем именно проблема, есть ли у кого-нибудь идеи?


person Mouna Ben Chamekh    schedule 16.08.2018    source источник


Ответы (1)


Так как ответов нет, я связался со службой поддержки Google, они сказали мне, что приведенные ниже запросы верны, проблема заключается в том, чтобы разрешить учетной записи службы доступ к моим ресурсам проекта GCP. Этот шаг объясняется здесь

Я уже прошел этот шаг, но я должен был что-то пропустить в первый раз, поэтому я удалил учетную запись службы и перезапустил все шаги, теперь все работает! Надеюсь, это кому-то поможет :)

person Mouna Ben Chamekh    schedule 04.09.2018