gpt4 book ai didi

java - 无法验证 : No JSON input found

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:49 24 4
gpt4 key购买 nike

我必须将文本从一种语言翻译成另一种语言。我正在使用Google 翻译 API。但是,我无法进行身份验证。我想通过代码提供身份验证信息,我不想使用全局变量自动进行身份验证(我仍然想知道这是一个好主意)。

虽然有一个简单的方法来设置 API key ,但没有方法以简单的方式指定凭据。因此,我决定使用创建服务 key 时获取的 JSON 进行身份验证。

{
"type": "service_account",
"project_id": "toto",
"private_key_id": "tata",
"private_key": "titi",
"client_email": "tete",
"client_id": "tutu",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/toto"
}

然后,在 scala 代码中:

 val cred = GoogleCredentials.fromStream(JSON_AUTHENTICATION_INPUT_STREAM)
TranslateOptions.newBuilder().setCredentials(cred)

当然,我收到以下错误:

 java.lang.IllegalArgumentException: no JSON input found
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:125)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49)
at com.google.api.client.json.JsonParser.startParsing(JsonParser.java:223)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:380)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:355)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.fromStream(GoogleCredential.java:250)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.fromStream(GoogleCredential.java:226)
at services.TranslatorBaseImpl.<init>(Translator.scala:58)

那又怎么样? JSON 验证不起作用?如何通过代码进行身份验证?

我在官方文档中搜索了几个小时,但对于这样的......高级......案例来说毫无用处。

感谢您的回答,亲吻

最佳答案

经过更多调查,我成功地使用 ServiceAccountCredentials 而不是 GoogleCredentials。然而,即使我能让它工作,这是 Not Acceptable 。第一个是第二个的子类。文档明确指出:

static GoogleCredentials fromStream(InputStream credentialsStream)
-> Returns credentials defined by a JSON file stream.

这应该可行,写吗?相同的代码,相同的输入,相同的conf,但契约(Contract)未填写....

关于java - 无法验证 : No JSON input found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42932401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com