为服务账号授予Cloud Text-to-Speech Client角色时遇权限错误求助
为服务账号授予Cloud Text-to-Speech Client角色失败,且无法调用API的问题
我在Google Cloud项目中给服务账号授予「Cloud Text-to-Speech Client」角色时一直遇到问题,尝试通过Google Apps Script调用Cloud Text-to-Speech API也无法成功。哪怕使用gcloud命令操作,还是会收到错误:Role roles/cloud.texttospeech.client is not supported for this resource。
以下是我已经尝试过的操作详情:
- API启用:Cloud Text-to-Speech API已在项目中启用,我多次在API库中验证过这一点。
- 项目关联:我的Apps Script项目已关联至正确的Google Cloud项目,两者的项目ID和项目编号完全匹配。
- 服务账号:专门为此创建(并重新创建过)服务账号,试过新账号和原有账号。
- gcloud命令:执行了以下命令(已替换为正确的项目ID和服务账号邮箱):
该命令返回错误:gcloud projects add-iam-policy-binding [redacted for security] --member="serviceAccount:[redacted for security]" --role="roles/cloud.texttospeech.client"Role roles/cloud.texttospeech.client is not supported for this resource。 - 项目级IAM:尝试通过Google Cloud控制台的IAM页面,在项目级别为服务账号添加「Cloud Text-to-Speech Client」角色,但下拉列表中未显示该角色(搜索后也找不到),手动输入完整角色ID
roles/cloud.texttospeech.client同样无效。 - 密钥文件:每次修改权限后,我都会下载服务账号的新JSON密钥文件,并更新Apps Script中的
google_credentials脚本属性。 - OAuth同意屏幕:已配置OAuth同意屏幕,添加了
https://www.googleapis.com/auth/texttospeech权限范围(尽管我了解这对服务账号可能不必要)。 - Apps Script代码:使用简单的
testTTS()函数进行测试,在Apps Script执行日志中收到错误:TTS Error (Fetch): SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
内容的提问来源于stack exchange,提问作者WatermarkShaun
相关产品推荐
相关产品推荐

