Google Text-to-Speech:错误无法自动验证

问题描述

我在 powershell 中使用谷歌文本到语音 API。我已经创建了项目,启用了 api,创建了密钥,当我告诉它时 $cred = gcloud auth 应用程序认打印访问令牌 $headers = @{ "Authorization" = "Bearer $cred" }

调用 WebRequest -Method POST -headers $headers -ContentType: "application/json; charset=utf-8" -InFile request.json ` -Uri "https://texttospeech.googleapis.com/v1/text:synthesize" |选择-对象-展开内容

这是在我设置环境后,我收到此错误消息 错误:(gcloud.auth.application-default.print-access-token) 无法自动确定凭据。请设置 GOOGLE_APPLICATION_CREDENTIALS 或明确创建凭据并重新运行应用程序。如需更多信息,请参阅https://cloud.google.com/docs/authentication/getting-started Invoke-WebRequest:远程服务器返回错误:(403) Forbidden。 在行:4 字符:1

  • Invoke-WebRequest `
  •   + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebExc
    eption
      + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
    
    

我试图重新创建可能是问题的关键思想,但无论我做什么,我都在这里不断收到此错误,我正在使用此代码指向关键 $env:GOOGLE_APPLICATION_CREDENTIALS=C:\IVR2\IVR2-ba991f7cce6a.json

解决方法

对于应用程序,您需要设置环境变量 GOOGLE_APPLICATION_CREDENTIALS,它是您的服务帐户 json 文件的位置。

您似乎在使用 gcloud 来获取凭据并包含授权标头。这也应该有效。您的 gcloud 命令是否返回错误?