我正在尝试制作一个使用Google Cloud Translation API的 Chrome 扩展程序。我在 Google 翻译和开发 Chrome 扩展的文档中的许多不同页面上遵循了一堆说明,但我仍然无法弄清楚如何在浏览器中实际使用 API。
我得到的最远距离是按照快速入门指南的一部分创建服务帐户,获取服务帐户密钥文件(下载为 .json 文件),安装和初始化 Google SDK,将GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为路径服务帐户 JSON 密钥文件,然后发出curl
请求,gcloud auth application-default print-access-token
以获取要作为请求标头的一部分输入的访问令牌:“授权:承载(此处的令牌)”。以这种方式成功检索到翻译。
但是在扩展的环境中,你不能运行这样的命令gcloud
,这样就不起作用了。我能够使用该gcloud
命令手动检索访问令牌,然后将其粘贴到我的 javascript 代码中作为请求标头的一部分(例如xmlHttpRequest.setRequestHeader('Authorization', 'Bearer ya29.c.Elr6BRuTfOtherRandomLetters');
)。但是该访问令牌会在 60 分钟后过期,因此无法持续发挥作用。
我也尝试使用identity.getAuthToken方法(在manifest.json
按照文档所说的方式更新内容之后),但这不起作用。使用我的服务帐户客户端 ID 作为client_id
下面oauth2
会manifest.json
导致来自identity.getAuthToken
. 另一方面,从 Google 控制台生成 OAuth2 客户端 ID,并使用myoauth2clientid.apps.googleusercontent.com
as the client_id
underoauth2
和["https://www.googleapis.com/auth/cloud-translation", "https://www.googleapis.com/auth/cloud-platform"]
as the scopes
under会oauth2
导致来自identity.getAuthToken
.
从 Google 控制台页面生成 API 密钥,并将其直接用作key
我的翻译查询的参数,甚至都不起作用:我收到“请求缺少有效的 API 密钥”。错误。
我在这里真的很茫然。任何帮助都是极好的。