使用默认凭据对 Gmail API 进行身份验证

问题描述 投票:0回答:2

总结:

在 Go 中使用 Gmail API 的示例包括用于从文件系统内的已知 JSON 文件读取凭据的代码。我想利用应用程序默认凭据 (ADC),因为我们正在部署到可以访问 Gmail API 的 k8s。

代码:

请在下面找到完整演示的摘录:

//error handling omited for brevity
b, _ := ioutil.ReadFile("credentials.json")
config, _ := google.ConfigFromJSON(b, gmail.GmailReadonlyScope) //is it possible to replace this?
client := getClient(config)
srv, _ := gmail.New(client)

如何替换摘录中的第 2 行以获得相同的配置,但不使用显式 JSON 凭证文件?

go google-cloud-platform gmail-api credentials
2个回答
0
投票

您可以使用 gcloud auth application-default print-access-token 打印访问令牌。使用它向 API 发出请求,而不是从文件中读取。 – 天线


0
投票

请注意,有关使用 gcloud auth 打印访问令牌,应用程序默认登录将需要具有使用 --scopes 访问 Gmail API 的范围。 gcloud SDK 使用的默认 OpenID 客户端将不允许执行此操作,在 OAuth 流程中,请求会被 Google 阻止,并显示“此应用程序已被禁止”之类的内容。 --client-id-file 也可以用来使用不同的 OpenID 客户端,但这可能并不比带有令牌管理的示例代码方便多少。

© www.soinside.com 2019 - 2024. All rights reserved.