我正在进行一个项目,需要访问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;设置CCD_ 2不配置CCD_。
您应该(尚未尝试(能够使用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