Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication &引用;“无效”;Google云平台上的服务帐户密钥_Authentication_Google Cloud Platform - Fatal编程技术网

Authentication &引用;“无效”;Google云平台上的服务帐户密钥

Authentication &引用;“无效”;Google云平台上的服务帐户密钥,authentication,google-cloud-platform,Authentication,Google Cloud Platform,我使用GCP文本到语音API创建问候语和交互式菜单,向打电话到企业的客户播放。我曾经使用谷歌快速入门成功地使用过文本到语音API: 对于新的组织和项目,我再次使用了相同的快速入门指南,但我一直收到一个无效的密钥错误,我无法调试该错误。 以下是我用来调用服务的命令和结果: # curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)”\ -H &quo

我使用GCP文本到语音API创建问候语和交互式菜单,向打电话到企业的客户播放。我曾经使用谷歌快速入门成功地使用过文本到语音API: 对于新的组织和项目,我再次使用了相同的快速入门指南,但我一直收到一个无效的密钥错误,我无法调试该错误。 以下是我用来调用服务的命令和结果:

# curl -X POST  \ 
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)”\ 
-H "Content-Type: application/json; charset=utf-8"  \  
-d @request.json  \
https://texttospeech.googleapis.com/v1/text:synthesize > synthesize-output-base64.txt

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}
我使用不同的身份验证标头重试:

# curl -X POST   \ 
-H "X-Goog-Api-Key:***my_API_key***.json"   \
-H "Content-Type: application/json; charset=utf-8"  \ 
-d @request.json  \ 
https://texttospeech.googleapis.com/v1/text:synthesize > synthesize-output-base64.txt

{
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "API_KEY_INVALID",
        "domain": "googleapis.com",
        "metadata": {
          "service": "texttospeech.googleapis.com"
        }
      }
    ]
  }
}
我已重新验证了以下配置:

已为我的项目启用文本到语音API

我正在尝试使用的凭据(服务帐户)与文本到语音API一起列出为兼容。我验证了该服务帐户密钥是在尝试的身份验证中使用的密钥

我将我在GCP上的配置与我为另一家公司管理的另一个工作配置进行了比较。我看不出有什么不同

我比较了我的密钥和另一家公司的工作密钥,除了特定的用户数据外,它们是相同的

项目的账单账户在有效支付卡到位的情况下处于活动状态

这两个链接很有帮助,但并没有解决问题:

在此问题上的任何帮助都将不胜感激

  • 我启用了云文本到语音API

  • 我使用
    编辑器角色创建了一个服务帐户

  • 注意:确保已将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为服务帐户私钥文件路径

  • 将请求正文保存在名为request.json的文件中

  • 执行以下命令:

  • 响应体

  • 一切正常

    解决此问题的方法是安装Google Cloud SDK


    CLI丢失,因此从
    gcloud auth application default print access token
    返回的输出是错误的。

    请验证
    gcloud auth application default print access token
    是否实际返回了有效的OAuth访问令牌。对于第二个示例,这是不正确的
    -H“X-Goog-Api-Key:**my_-Api\u-Key***.json”
    .json
    结束打字错误吗?如果是,请更正详细信息。如果CLI未打印错误并打印长字符串,则很可能是有效的访问令牌。有几种变体,但它应该以类似于
    ya29的内容开始。
    。(四个字符和一个句号)。对于第一个示例,我建议将令牌创建输出分配给shell变量,然后将其用作承载令牌。帮助调试。要验证Google OAuth访问令牌:
    curl-H“授权:承载令牌”https://www.googleapis.com/oauth2/v3/tokeninfo
    ***我的API密钥***
    是我放置实际密钥的地方。我本可以更好地选择如何隐藏我的密钥…我收到的错误代码显示我有一个无效密钥。在设置时是否有一些配置错误?是否使用CLI设置了服务帐户?请看我文章中的第6步:
    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    https://texttospeech.googleapis.com/v1/text:synthesize
    
    {
      "audioContent": "//NExAARcrn0ABhEudAgAjuem7vohckY3IAFgWvxrBkAD//ARvqc/QhCZ/6EJO6E9Dvo2cjHPQhLfWQ/rTU7yEznsoGBn8hJz5xbQiOgEfwDzD1DVARLPlzGNXylbM8s//NExA0SCnoAAUIQAd8vlrM9DPR//6t5fpUpS
    sk3MbzGUvMhqOpdSsjmcpeY2Zz ...................
    }