如何解决Gcloud 错误 401:请求的身份验证凭据无效
我正在处理一个需要访问 Gcloud 服务帐户的项目。但是,我一直遇到身份验证问题。这是我的命令提示符下的以下错误:
我的命令:
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://speech.googleapis.com/v1/speech:recognize \
-d @sync-request.json
输出:
{
"error": {
"code": 401,"message": "Request had invalid authentication credentials. Expected OAuth 2 access token,login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status": "UNAUTHENTICATED"
}
}
目前,我已完成以下操作:我设置了环境变量“GOOGLE_APPLICATION_CREDENTIALS”,以保存我的服务帐户的 JSON 密钥文件的路径,我在密钥文件所在的目录中打开了我的 cmd,我运行了命令。还有什么我遗漏的吗?
我关注的文档来自https://cloud.google.com/docs/authentication/production#windows
解决方法
几件事。
gcloud
不使用 ADC;设置 GOOGLE_APPLICATION_CREDENTIALS
不配置 gcloud
。
您应该(还没有尝试过)能够使用 gcloud auth activate-service-account ...
和 gcloud auth print-access-token
。
或者您可以只使用常规(人工|非服务)帐户和 gcloud auth print-access-token
。
或者,您可以先使用 gcloud auth application-default login
,然后使用 gcloud auth application-default print-access-token
,但两者一起使用。
不要在标题中引用标记:
TOKEN="$(gcloud auth print-access-token)" # Either
TOKEN="$(gcloud auth application-default print-access-token)" # Or
curl \
--silent \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${TOKEN}" \
--data @sync-request.json \
https://speech.googleapis.com/v1/speech:recognize
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。