Я пытаюсь использовать Google translate API без использования переменных среды, но, похоже, я что-то упустил.Вот код котлина, который я использую:
import com.google.auth.oauth2.ServiceAccountCredentials
import com.google.cloud.translate.Translate
import com.google.cloud.translate.TranslateOptions
import java.io.FileInputStream
class StringsTranslator {
companion object {
@JvmStatic
fun main(args: Array<String>) {
TranslateOptions.newBuilder().credentials = ServiceAccountCredentials.fromStream(
FileInputStream("ktools/google-apis-credentials.json")
)
val translate = TranslateOptions.getDefaultInstance().service
val text = "Hello world!"
val translation = translate.translate(
text,
Translate.TranslateOption.sourceLanguage("en"),
Translate.TranslateOption.targetLanguage("es")
)
println("$text = ${translation.translatedText}")
}
}
}
Я в основном взял этот пример и адаптировал его: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/translate/cloud-client/src/main/java/com/example/translate/QuickstartSample.java
Но я получаю это исключение:
Исключение в ветке "main" com.google.cloud.translate.TranslateException: в запросе отсутствует действительный ключ API.
Файл загружен из Google (в противном случае он в любом случае вызовет IOException)и кажется, что TranslateOptions.newBuilder () не имеет проблем с этим, поэтому я думаю, что я делаю что-то не так в середине или пропускаю какой-то шаг, чтобы эти опции использовались сервисом перевода в дальнейшем.
ТИА!