我正在使用gcloud来实现Speech2text。我不得不重置服务器,但现在无法让gcloud识别正确的项目。
transscript = $(curl -s -H“内容类型:应用程序/ json” -H“授权:承载” $(gcloud auth打印访问令牌)https://speech.googleapis.com/v1/speech:recognize -d @ $ mailpath / sync_request .json)
结果
“代码”:403, “ message”:“项目32555940559之前未使用Cloud Speech-to-Text API或已将其禁用。请访问https://console.developers.google.com/apis/api/speech.googleapis.com/overview?project=启用它,然后重试。如果最近启用了此API,请等待几分钟传播到我们的系统并重试的操作。”,
我不知道错误的项目编号来自何处。
我尝试了gcloud config配置列表,并显示了正确的项目。 我已经完全卸载了SDK。 我已经分配了GOOGLE_APPLICATION_CREDENTIALS环境变量
一切都没有成功。
预期结果分配了正确的项目
答案 0 :(得分:0)
gcloud auth application-default print-access-token生成并打印当前应用程序默认证书(ADC)的访问令牌。可以通过将
GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为服务帐户密钥文件(JSON)的路径或使用gcloud auth application-default login来指定ADC。
答案 1 :(得分:0)
您正在使用未记录(且不推荐)的gcloud auth print-access-token
。这将使用默认的SDK客户端ID(我猜是在项目32555940559
中),并且该项目中未启用Speech API。
如马丁建议的那样,应该使用gcloud auth print-access-token
而不是使用gcloud auth application-default print-access-token
。
您可以通过运行grep -r 'CLOUDSDK_CLIENT_ID =' $(dirname $(which gcloud))/../
来检查我是否对客户端ID正确(我刚刚检查过,实际上,该项目ID是默认客户端ID的项目)。