python - 从 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')
. 但是,如果可能的话,我不想做肮脏的方式,而是想以正确的方式生成令牌。
解决方案
尝试按照此文档下载服务帐户。获得密钥后,您需要设置GOOGLE_APPLICATION_CREDENTIALS
密钥的文件路径。
推荐阅读
- android - 动画在哪个线程上运行?
- html - 如何通过按 Tab 键取消选择输入内容?
- mongodb - 如何使用查询数据在 mongodb 单一聚合中执行另一个查询?
- c++ - 如何从监视列表中隐藏一些类公共属性?
- html - 更新 html 后 iframe 不变
- placeholder - CKeditor 5(在线生成器)坚持在文本字段中有占位符
- c - 第二个“if”语句是什么意思(凯撒密码)
- mongodb - 在 mongodb 中查找所有未读对话
- stanford-nlp - 增加了 Stanford Core NLP v4.0.0 中不正确 POS 错误的情况
- email - 在 Gmail 中,使用 Google Apps 脚本,是否可以将我收到的已翻译电子邮件转发到另一个电子邮件地址?