【问题标题】:Google Translate API Key json format谷歌翻译 API 密钥 json 格式
【发布时间】:2021-11-18 06:29:41
【问题描述】:

我正在尝试从本地机器(不是谷歌云)使用谷歌翻译 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 中添加了 type: 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 文件格式的文档,也无法从谷歌云平台导出 json 文件,只能复制密钥。

关于如何从本地机器翻译工作的任何想法?

【问题讨论】:

    标签: json google-translate


    【解决方案1】:

    我也必须为 Analytics API 创建一个凭据文件,并且面临同样的信息缺失问题。 我别无选择,使用了新的谷歌Cloud Dashboard,你必须创建一个应用程序,选择你想要的API,然后谷歌为你提供一个有效的凭据文件。

    我的文件看起来像这样:

    {
      "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": "***"
    }
    

    这就是为什么我很确定你必须对翻译 API 做同样的事情,第一个声明 "type": "service_account", 与你得到的错误匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 2010-10-10
      • 2010-11-11
      相关资源
      最近更新 更多