Google OAuth в Java - как вручную установить данные токена? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть два сервера.

На первом запущена безголовая программа Kotlin / JVM, и она недоступна для «клиента», поэтому невозможно напрямую пройти аутентификацию на этом сервере. Он загружает данное видео на YouTube.

Вторым является веб-интерфейс на Python, который доступен для клиента. Клиент аутентифицируется с помощью OAuth 2 на этом сервере, и сервер получает следующие данные:

{"token": "...", "refresh_token": "...", "token_uri": "https://www.googleapis.com/oauth2/v3/token", "client_id": "....apps.googleusercontent.com", "client_secret": "...", "scopes": ["https://www.googleapis.com/auth/youtube.force-ssl"]}

Я хочу передать его на второй сервер, но я не знаю, как передать эти параметры в библиотека Google Oauth. Если я сделаю это следующим образом:

        val credential = Credential.Builder(BearerToken.authorizationHeaderAccessMethod())
            .setTokenServerUrl(GenericUrl("https://www.googleapis.com/oauth2/v3/token"))
            .setTransport(httpTransport)
            .setJsonFactory(jsonFactory)
            .clientAuthentication() // Where to get the parameter?
            .build()

        credential.accessToken = "..."
        credential.refreshToken = "..."

Будет выдано исключение, если я не установлю clientAuthentication, но я не знаю, как его построить:

Exception in thread "main" java.lang.IllegalArgumentException: Please use the Builder and call setJsonFactory, setTransport, setClientAuthentication and setTokenServerUrl/setTokenServerEncodedUrl

Есть ли простой способ передачи параметров токена?

...