【发布时间】:2019-03-22 05:09:09
【问题描述】:
我正在尝试在不使用环境变量的情况下使用 Google 翻译 API,但我似乎遗漏了一些东西。这是我正在使用的 kotlin 代码:
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 密钥。
该文件是从谷歌下载的(否则它会在之前抛出一个 IOException),并且似乎 TranslateOptions.newBuilder() 没有问题,所以我认为我在中间做错了什么,或缺少某些步骤,以便翻译服务进一步使用这些选项。
TIA!
【问题讨论】:
标签: java authentication kotlin google-api google-translate