GoogleAppClient使用个人帐户进行身份验证?

2024-04-24 13:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解Google关于其googleapiclient模块认证的文档。在

基本上,我想用我的帐户而不是服务帐户连接到Google云平台(GCP)API。但似乎没有一个简单明了的文档。在

如果可能的话,有人能用Python代码的例子来指导我如何做到这一点吗?在

为了说明一下,这是我的代码片段:

gcp_credentials = service_account.ServiceAccountCredentials \
    .from_json_keyfile_name('credentials/gce_token.json', scopes=[const.GCP_SCOPE])
gcp_http = gcp_credentials.authorize(http=build_http())
crm_service = discovery.build('cloudresourcemanager', 'v1', http=gcp_http)
crm_projects_api = crm_service.projects()
projects_list = crm_projects_api.list().execute()['projects']
project_id_list = [p['projectId'] for p in projects_list]

请随时提出澄清问题。在


Tags: 代码文档buildapijsonhttpservicegoogle
1条回答
网友
1楼 · 发布于 2024-04-24 13:26:45

当访问Google云平台API时,Google建议您设置一个API密钥,仅用于测试目的,并建议为生产使用设置一个服务帐户。使用服务帐户选项,可以为服务帐户生成一个密钥,允许使用该密钥的应用程序假定服务帐户的身份(因此它与相关的作用域/权限)一致。在

要创建API密钥(仅用于测试):

1)从Google API控制台获取OAuth 2.0客户端凭据。在

API&服务>凭据>API密钥

要创建服务帐户密钥(用于生产),请执行以下操作:

1)导航到“API&Services”>;“凭据”

2)单击“创建凭据”>;“服务帐户密钥”

3)您可以选择选择已存在的服务帐户,或创建新的服务帐户(在这些步骤中,我将选择“创建新服务帐户”)

4)选择允许访问所需存储的角色,例如允许对存储桶进行读写操作的“存储管理员”。在

5)选择JSON或P12(建议使用JSON),然后单击“创建”。服务帐户的密钥文件将下载到本地计算机。在

应用程序使用服务帐户密钥进行身份验证的最简单方法是使用GOOGLE_APPLICATION_CREDENTIALS环境变量。在

您需要通过指向服务帐户密钥文件(创建服务帐户时下载的.json文件)来设置此环境变量。例如:

$ export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>

如果您不希望使用ADC(应用程序默认凭据)变量,而希望在Python代码中指向服务帐户文件,则可以使用如下内容,假设您希望使用存储API:

^{pr2}$

相关问题 更多 >