从 Python 库为 AutoML、计算机视觉生成承载令牌

基于此Google 文档,我可以通过在终端中调用它来生成计算机视觉 API 请求的令牌gcloud auth application-default print-access-token。但是,我将从我的 python 代码调用请求,并尝试从 python 代码生成,如下所示......


该代码基于此文档页面


with open( environ.get(KEY_ENV_VARIABLE) ) as f:

    key = json.load(f)


iat = time.time()

exp = iat + 3600

payload = {

    'iss': key.get('client_email'),

    'sub': key.get('client_email'),

    'aud': 'https://vision.googleapis.com/google.cloud.automl_v1beta1',

    'iat': iat,

    'exp': exp

}

additional_headers = { "kid": key.get("private_key_id") }

signed_jwt = jwt.encode(payload, key.get("private_key"), headers=additional_headers, algorithm='HS256')

return signed_jwt.decode('utf-8')

它确实生成了令牌,但是与gcloud工具生成的令牌相比,它的长度不同。


我知道最简单和快速的肮脏修复是调用os.system('gcloud auth application-default print-access-token'). 但是,如果可能的话,我不想做肮脏的方式,并希望以正确的方式生成令牌。


牧羊人nacy
浏览 157回答 1
1回答

PIPIONE

尝试按照此文档下载服务帐户。获得密钥后,您需要设置GOOGLE_APPLICATION_CREDENTIALS为密钥的文件路径。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python