我正在尝试从本地机器(而不是Google云)使用google translate API。
在运行以下代码之前,我已经运行了
export GOOGLE_APPLICATION_CREDENTIALS=API.json
其中API.json为:
{ "key":"the_key_code" }
运行此代码后:
import google.auth
from google.cloud import translate
_, PROJECT_ID = google.auth.default()
TRANSLATE = translate.TranslationServiceClient()我得到了以下错误:
DefaultCredentialsError: The file API_.json does not have a valid type. Type is None, expected one of ('authorized_user', 'service_account', 'external_account')
然后我向json添加了类型: service_account,并得到了这个错误:
DefaultCredentialsError: ('Failed to load service account credentials from API.json', ValueError('Service account info was not in the expected format, missing fields client_email, token_uri.'))
我找不到任何关于API密钥json文件的格式的文档,也没有办法从google云平台导出json文件,只有复制密钥的能力。
关于如何在本地机器上进行翻译工作,有什么建议吗?
发布于 2021-09-25 10:00:09
我也不得不为Analytics API创建一个凭证文件,并且同样面临着信息的缺乏。我别无选择,使用了新的google API,你必须创建一个应用程序,选择你想要的Cloud Dashboard,然后Google为你提供一个有效的凭证文件。
我的文件是这样的:
{
"type": "service_account",
"project_id": "***",
"private_key_id": "***",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANB***xmw0Fcs=\n-----END PRIVATE KEY-----\n",
"client_email": "***",
"client_id": "***",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "***"
}这就是为什么我非常确定你必须对translate API做同样的事情,首先声明"type": "service_account",匹配你得到的错误。
https://stackoverflow.com/questions/69324034
复制相似问题