У меня есть два сервера.
На первом запущена безголовая программа 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
Есть ли простой способ передачи параметров токена?