大佬教程收集整理的这篇文章主要介绍了Google 翻译 API V3:如何从文件流验证服务帐户,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
验证服务帐户以使用 Google Translate V3 API 的默认方式是通过环境变量。这个名为 Google_APPliCATION_CREDENTIALS 的环境变量指向一个带有凭据的 Json 文件,如下所述: https://cloud.google.com/docs/authentication/production
但是,在不同位置使用文件时如何使用所需的凭据?我可以从 fileStream 创建凭据对象,如 Google 文档中所述。但是,使用此凭据对象仅针对 Google 云存储进行了说明。 TranslateTextrequest 的构建器不接受此类凭据对象。 https://googleapis.dev/dotnet/Google.Cloud.Translate.V3/2.0.0/api/Google.Cloud.Translate.V3.TranslateTextrequest.html
唯一的解决方法是将文件复制到 env var 中指定的位置,但这看起来很奇怪,并且在未设置该变量时会失败。
所以,我终于能够解决这个问题了。
@JohnHanley 不幸的是,TranslationserviceClientBuilder
类在我的环境中不可用。也许它是 DotNet 特定的。不过,这个提示还是很有帮助的,因为我找到了另一个 Builder,它创建了一个 TranslationserviceSetTings
的实例,而它又具有一个静态工厂方法,而该方法又可以用来实例化一个 TranslationserviceClient
。
以下是如何从文件路径到 Google JSON 凭据文件创建 TranslationserviceClient 的完整解决方案。
TranslationserviceSetTings setTings = TranslationserviceSetTings.newBuilder()
.setCredentialsProvider(new CredentialsProvider() {
@Override
public Credentials getCredentials() throws IOException {
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream(credentialsFileAbsPath))
.createScoped(Collections.singletonList("https://www.googleapis.com/auth/cloud-platform"));
return credentials;
}
}).build();
TranslationserviceClient translationserviceClient = TranslationserviceClient.create(setTings);
当然,匿名类也可以用 Lambda 表达式替换。
@PjotrS 抱歉造成混乱。我所指的文件是 JSON 凭证文件,而不是要翻译的文件。
以上是大佬教程为你收集整理的Google 翻译 API V3:如何从文件流验证服务帐户全部内容,希望文章能够帮你解决Google 翻译 API V3:如何从文件流验证服务帐户所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。