【发布时间】:2018-12-20 21:00:19
【问题描述】:
我设法通过 Python API iamcredetials.googleapis.com 创建了一个服务帐户和一个自己的密钥,但我无法登录它,因为密钥是 P12 格式并以 dict 的形式接收,我可以'找不到登录密钥的方法。有没有办法创建 p12 文件或其他东西以便我可以使用密钥?
我尝试使用 oauth2clinet.service_account.ServiceAccountCredentials() 模块中提供的函数,但没有一个能成功加载它,我知道这个库中存在一定程度的弃用,也许我正在使用过时的方法。
当我使用_from_p12_keyfile_contents() 函数时,我离成功登录越近,它给出了“编码例程”错误,这超出了我的理解。
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery, errors, logging
default_creds = google_application_defaults()
service = discovery.build("iam", "v1", credentials=default_creds, cache_discovery = False)
key = service.projects().serviceAccounts().keys().create( name = serviceAccMail, body={}).execute()
creds = ServiceAccountCredentials._from_p12_keyfile_contents(accountEmail, newkey["privateKeyData"], "notasecret")
Error: [('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error')]
登录此密钥的正确方法是什么?
【问题讨论】:
标签: python google-cloud-platform google-oauth google-cloud-python google-iam