使用api键使用谷歌云翻译api



我为自己创建了一个免费帐户,这样我就可以试用Google Cloud Translation API了。我从Service帐户中为自己生成了一个密钥,将其存储到json文件中,然后加载,一切似乎都很正常。我的代码片段:

import os
from google.cloud import translate_v2
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r"google.json"
print(os.getenv('GOOGLE_APPLICATION_CREDENTIALS'))
translate_client = translate_v2.Client()
text = "Redaksia e IRL-së pas publikimit të skandalit të quajtur “Gjaku i Pistë”, sonte ka dalë me një"
target = 'en'
output = translate_client.translate(text, target_language=target)
print(output)

然而,我在Credentials中看到,我可以生成一个API密钥,现在我想使用这个API密钥,这样我就可以翻译并避免json文件。问题是,我试图找到一种如何使用这个api密钥的方法,但仍然找不到!我试图将密钥作为translate_client = translate_v2.Client(credentials=API_KEY)传递到客户端的构造函数中,但我得到了错误

ValueError:此库仅支持来自google auth库python的凭据。

是否有人使用了谷歌翻译api的api密钥,如果是,如何使用?如果不是,那么来自服务帐户的json文件是针对该服务进行身份验证的唯一方法吗?

这个错误意味着它不支持API键。本页列出了可能的身份验证方法。

如果您唯一的要求是不包括JSON文件,那么可以将JSON内容放在python dict中,并使用以下方法创建一个凭据对象,您可以将其传递给翻译客户端的实例化。

请注意,您不应将此dict放在任何可公开访问的位置(API密钥也是如此(,因为它将允许访问任何有问题的服务帐户或API密钥。

文档

sa_dict = {
"type": "xxxx",
"project_id": "xxx",
"private_key_id": "xxx",
"private_key": "xxxxxx",
"client_email": "xxxx@xxxxx.iam.gserviceaccount.com",
"client_id": "xxxxxxxxxx",
"auth_uri": "xxxxxx",
"token_uri": "xxxxxx",
"auth_provider_x509_cert_url": "xxxxx",
"client_x509_cert_url": "xxxxx.iam.gserviceaccount.com"
}
credentials = service_account.Credentials.from_service_account_info(sa_dict)
translate_client = translate_v2.Client(credentials=credentials)

您的另一个选择是切换到通用的Google API库,称为google-api-python-client,但这与特定的google-cloud-translate没有相同的优化。

这个库的github repo在这里有一个非常简单的示例,在这里有完整的文档。。。

相关内容

  • 没有找到相关文章

最新更新