请求具有无效的身份验证凭据。云语音中预期的 OAuth 2 访问令牌错误 api

Request had invalid authentication credentials. Expected OAuth 2 access token error in cloud speech api

我已经按照google云语音api使用

请求api的快速入门
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

和以下 link 但我得到了

的错误
{
  "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"
  }
}

我现在该怎么办?

提前致谢

可能是应用程序默认凭据不可用

尝试运行宁

登录
gcloud auth application-default login

并按照说明操作,参考:gcloud auth application-default login

如果您想确保身份验证过程顺利进行,运行:

gcloud auth application-default print-access-token

您应该会看到一个访问令牌,参考 gcloud auth application-default print-access-token

$(gcloud auth application-default print-access-token) 替换为调用命令时打印的内容。

我通过注销解决了这个问题,然后登录以同意自上次我使用 google 云(在我的情况下是 firebase)以来 google 制定的一些新条款和条件。

解决方案对我有用。

提醒一下,如果使用其他软件与 GCP 交互,您可能需要重启软件才能使授权生效

在我的例子中,当使用 RStudio 时,我 运行 gcloud auth application-default login 进行身份验证,然后 command + shift + f10 重新启动 R 会话,然后 然后 一切顺利。

某些包将具有刷新当前 R 会话中令牌的功能。例如 bigrquery 库有 bq_auth() 将新令牌添加到 R 会话(无需重新启动会话等)

您可能禁用了身份验证。所以

gcloud config set auth/disable_credentials false

确保您的日期和时间正确,并且您的时区也正确。 我就是这样解决这个问题的

如果您在上次登录客户端后更改了分配给凭据的范围,请确保您再次登录以更新客户端令牌。