如何获取 Google Translate API 的文件“service_account.json”?

Posted

技术标签:

【中文标题】如何获取 Google Translate API 的文件“service_account.json”?【英文标题】:How can I get the file "service_account.json" for Google Translate API? 【发布时间】:2018-02-27 11:04:30 【问题描述】:

我尝试在我的开发中使用 Google Translate API,但我找不到获取“service_account.json”文件的方法。

“Console Google Cloud Platform”上的步骤:

控制台步骤:

拜托,我需要详细的步骤,因为我从谷歌得到的东西对我没有用

【问题讨论】:

console.cloud.google.com/apis/credentials/serviceaccountkey> 这是您可以下载 JSON 或 P12 文件或现有服务帐户的链接。 【参考方案1】:

我花了一段时间才找到如何下载 json 密钥。

    创建服务帐号 在您的云控制台中打开服务帐户并添加密钥 在下拉菜单中选择创建密钥 4.然后选择key类型json

【讨论】:

【参考方案2】:

服务帐户密钥只能在首次创建 sa 时检索,尤其是在您通过 GCP 控制台创建的情况下,这是一种安全机制。但是你可以删除旧的并创建一个新的没什么大不了的,就是这样,SA仍然保持不变,轮换密钥很好。

如果您使用 GDM(Google 部署管理器)或 Terraform 等 IaC,您可以根据需要多次检索它。

对于 Terraform,只需像这样配置必要的输出...

### Resources

resource "google_service_account" "my_service_account_name" 
  account_id    = "my-sa"
  display_name  = "my-sa"
  description   = "This is for descriptions"


resource "google_service_account_key" "my_service_account_key" 
  service_account_id = google_service_account.my_service_account_name.name


### Outputs

output "my_service_account_key" 
  description = "This is for descriptions (for single use)."
  # sensitive   = true # you can add sensitive to avoid showing it in plain text each time you run the code in case you don't need to retrieve it each time
  value = base64decode(google_service_account_key.my_service_account_key.private_key)

对于 GDM,请记住 GCP 不再建议将其用于 IaC 管理,您仍然可以使用描述资源的 CLI 并为 sa 密钥资源添加基本 jq 查询来检索它...

gcloud deployment-manager deployments describe my-gdm-deployment-name \
    --project project-name \
    --format json | jq -r '.outputs[] | select(.name==my-sa-key-resource-name") | .finalValue'| base64 --decode

【讨论】:

好消息。但这并没有解释如何使用 terraform 通过“secret_data”参数将输出文件(私钥)上传到秘密管理器。您能否建议并添加上述答案?【参考方案3】:

获取 credential.js 的最新方法是点击“your_email_servicer”-> 选择 tab 键,然后点击 [add Key]

【讨论】:

这是创建一个新密钥,但如果我需要现有服务帐户的凭据怎么办 这是正确的答案 - 但是谷歌没有回答或者这里是在哪里放置私钥?【参考方案4】:
    转到https://console.cloud.google.com/apis/credentials 在左上角有一个蓝色的“创建凭据”按钮,单击它并选择“服务帐户密钥”。 (如果不存在,请参见下文) 选择所需的服务帐号,并选择“JSON”作为密钥类型。 它应该允许给你一个 json 来下载

如果没有蓝色按钮:

您需要在上面链接的页面上的“OAuth 同意屏幕”选项卡上填写所有必填字段,如果不存在则创建一个。

如果仍然不起作用,您可能还需要创建一个客户端 ID(我不记得了,抱歉)。

如果“服务帐户密钥”不是一个选项

您需要创建一个服务帐号。

转到https://console.cloud.google.com/iam-admin/serviceaccounts/project 并点击“创建服务帐户”

【讨论】:

如果我已经创建了服务帐户密钥,但我现在想重新下载它并且不想创建另一个,该怎么办? 出于安全原因,Google 不会让您重新下载它(他们不存储私钥部分) 所以谷歌在我电脑的某个地方下载了密钥而不问我在哪里?我不明白。 我无法让它与 Firefox 一起使用。必须使用 Chrome 下载文件。

以上是关于如何获取 Google Translate API 的文件“service_account.json”?的主要内容,如果未能解决你的问题,请参考以下文章

可以免费访问google translate api吗? [关闭]

如何使用 Google Translate-API 翻译 JS 中的整个页面文本内容

使用 Google Translate API 翻译 PDF 文件

Google Translate API(付费)与 Google Translate API(免费)?

Python Google Translate API

python google_api_translate.py