You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google SDK项目不匹配致Cloud TTS API调用403错误排查求助

解决Google TTS API调用时错误使用旧项目的403问题

这种情况我碰到过好几次,核心问题大多和gcloud的身份令牌缓存或者项目配置优先级有关,咱们一步步来排查解决:

1. 访问令牌缓存未更新

你用gcloud auth print-access-token生成的令牌可能是之前旧项目的缓存版本——哪怕你切换了默认项目,只要令牌还没过期,API调用就会沿用旧项目的权限信息。

解决办法很直接:

  • 要么强制刷新令牌:执行gcloud auth print-access-token --force-refresh,用这个命令生成的新令牌就会绑定当前默认项目;
  • 要么彻底重置身份:先执行gcloud auth revoke --all注销所有登录身份,再重新用gcloud auth login登录,确保身份和正确项目绑定。

2. 检查是否有多个活跃身份

如果你的gcloud配置了多个用户或服务账号,可能当前默认使用的身份并不属于你要操作的项目。

执行gcloud auth list查看所有活跃身份,带*标记的是当前生效的身份。如果不是正确项目对应的身份:

  • 如果你用的是用户账号,重新执行gcloud auth login切换到正确账号;
  • 如果是服务账号,用gcloud auth activate-service-account [你的服务账号邮箱] --key-file=[服务账号密钥文件路径]来激活对应身份。

3. 直接在令牌生成时指定项目ID

有时候默认项目的配置可能被其他因素覆盖,不如直接在生成令牌时明确指定目标项目,从根源避免错误。

修改你的curl命令,在生成令牌的部分加上--project参数:

curl -H "Authorization: Bearer "$(gcloud auth print-access-token --project=你的正确项目ID) -H "Content-Type: application/json; charset=utf-8" --data "{ 'input':{ 'text':'I\'ve added the event to your calendar.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize"

把你的正确项目ID替换成你已经启用TTS API的项目ID即可。

4. 排查环境变量干扰

系统里的GOOGLE_CLOUD_PROJECT或GCLOUD_PROJECT环境变量会优先于gcloud的默认项目配置,如果这两个变量设置的是旧项目ID,就会导致API调用错误。

执行以下命令检查:

echo $GOOGLE_CLOUD_PROJECT
echo $GCLOUD_PROJECT

如果输出了旧项目ID,执行unset GOOGLE_CLOUD_PROJECT和unset GCLOUD_PROJECT清除环境变量,之后再重新运行curl命令。

一般来说,前两个方法就能解决大部分问题,尤其是强制刷新令牌,通常能快速见效。

内容的提问来源于stack exchange,提问作者user2316602

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:53:51