Public/Private 个密钥用于 Google 个开发者服务帐户

Public/Private keys for Google developers service account

我已经研究了一段时间,但无法理解如何在 google 开发人员控制台中为我自动创建的服务帐户获取 public/private 密钥。

我正在制作一个 python 脚本,该脚本使用 gspread 从 google 电子表格导入数据,并通过 SignedJwtAssertionCredentials 验证我自己 我需要一个现有的服务帐户

问题是:

我使用以下方法创建了一个新项目: "Create a project"

但是当我转到 Permissions/Permissions 时,我看到 the service account I need 已经创建,但我没有它的密钥。

我想知道如何获取 @developer.gserviceaccount.com 密钥,因为我已经尝试使用我的其他 @xxx-22324.iam.gserviceaccount.com 从 google 电子表格导入数据,但没有成功,它显示了电子邮件地址不存在。

编辑:

每当我去 API 管理器/凭据时,我只能为我的 @mxxx-22324.iam.gserviceaccount.com(我不能使用的)

生成一个密钥

我解决了我的问题:

Google 已更新其服务帐户详细信息格式以及与服务帐户共享电子表格的方式,以便可以从 gspread 访问它们。

然后我创建了一个具有新格式的服务帐户:xxx@montredo-22324.iam.gserviceaccount.com 并将完全相同的文件 google 生成为 JSON 以供我的应用程序读取:

login = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)

然后在没有通知的情况下将电子表格与我的服务帐户电子邮件共享(与我刚才提到的 JSON 文件中的相同)

瞧瞧。