如何获取 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 文件